[파이썬(Python)] 파이썬 예외처리 하는 방법(try~except)


안녕하세요.

 

오늘은 파이썬에서 예외처리 하는 방법에 대해서 알려드리려고 합니다.

 

누구나 프로그램을 만들다 보면, 예외를 만나게 되고 또 이러한 에러는 프로그램이 다운되는 큰 직면까지도 갈 수 있게 되는데요.

 

그렇기 때문에, 프로그래머들은 항상 개발을 할 때 예외 처리도 신경 쓰면서 설계 및 개발을 합니다.

 

그리고 각각의 언어들은 예외 처리를 보다 쉽게 할수 있게 문법적으로 이미 제공을 해주고 있고, 파이썬 역시 예외처리 구문을 제공해 주고 있습니다.


 

그래서 오늘은 간단히 파이썬에서 어떻게 예외 처리를 하는지 알아 보도록 하겠습니다.

 

우선 다음과 같은 구문이 있습니다.


예외 발생하는 구문


1

2

3

4

5

6

7

8

9

10

11

#나누기 함수 선언

def fun_Division(num1, num2):

    return num1 / num2

 

#두개의 숫자 나누기

num1 = 45

num2 = 0

 

result = fun_Division(num1, num2)

 

print(result)

cs


실행 결과



 

위의 프로그램을 실행시켜 보니까 위와 같이 “ZeroDivisionError” 라고 해서 현재 나누기를 할 때, 0 으로 나눌 수 없다고 에러가 발생하고 프로그램은 정상적으로 실행되지 못한 것을 확인하실 수 있습니다.

 

사실 위와 같이 프로그램 자체에서 예외 코드를 던져주는 것은 당연한 일인데요. 하지만 프로젝트 크기가 커지면서 여러 사람이 사용하는 웹 사이트 또는 다른 프로그램인 경우 이러한 많은 예외 메시지들이 계속 노출되면 어떨까요?


 

사용자들도 불안하고, 만든 개발자도 불안할거에요..

 

이렇듯, 0으로 나눌 수 없다는 예외를 제가 미리 예측을 해서 대응할 수 있게 한번 프로그램을 수정해 보도록 하겠습니다.


예외처리 프로그램


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#나누기 함수 선언

def fun_Division(num1, num2):

    return num1 / num2

 

#두개의 숫자 나누기

try:

 

    num1 = 45

    num2 = 0

 

    result = fun_Division(num1, num2)

 

    print(result)

except ZeroDivisionError as ex:

    print('0으로 나눌 수는 없습니다다시 확인해 주세요.')

cs


실행 결과



위와 같이 try~except 구문을 이용하여 사용자가 미리 에러가 날 수 있는 지점을 예측하여 사용자가 원하는 대로 에러 메시지 문구를 작성하여 보여 줄 수 있습니다.

 

또한, 여러 개를 예외처리 할 수도 있는데요.


다중 예외처리


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#나누기 함수 선언

def fun_Division(num1, num2):

    return num1 / num2

 

#두개의 숫자 나누기

try:

 

    num1 = 45

    num2 = 0

    a = [123, ,4 ,5]

    

    result = fun_Division(num1, num2)

 

    print(a[8])

    print(result)

 

except ZeroDivisionError as ex:

    print('0으로 나눌 수는 없습니다다시 확인해 주세요.')

except IndexError as ex:

    print('없는 인덱스 번호입니다다시 확인해 주세요.')

cs

 

위와 같이 except를 여러 개 써서 다중 예외 처리도 할 수 있습니다.

대신에, 제일 먼저 예외가 발생한 것 기준으로 예외를 반환해주는 점은 알아 두시기 바랍니다.


 

예외가 발생하면, 발생한 시점으로 부터는 프로그램이 작동하지 않기 때문에 그습니다.

 

이로써, 오늘은 간단히 파이썬에서 예외처리 하는 방법에 대해서 알아 보았습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY