프로그래밍/Python

[Python] 예외처리

슬기나무 2021. 6. 3. 21:11
반응형

이번 포스팅에서는 파이썬에서의 예외처리에 대해 알아보겠습니다.

 

 예외 처리란?

파이썬 프로그램을 실행하다가 만약 오류가 나온다면

 

그 프로그램은 오류를 고치기 전까진 사용할 수가 없습니다.

 

물론 다른 프로그램도 마찬가지이며, 이런 일은 일어나지 않도록 해야합니다.

 

그런데 만약 오류가 나는 경우에 예외 처리를 해놓는다면,

 

오류를 일으키는 원인을 배제하여

 

프로그램을 정상적으로 동작시킬 수 있습니다.

 

설명은 참 쉽죠? 예제를 통해 알아봅시다.

 

 예외 처리 예제

아래와 같이 변수 a를 입력받아 56을 a로 나눈 결과값을 출력하는 함수가 있습니다.

def apple(a):
    return 56 / a

print(apple(2))
print(apple(7))
print(apple(0))
print(apple(8))

각각 2, 7, 0으로 나눈 결과를 출력하도록 했습니다.

 

결과는 어떨까요?

2, 7로 나눈 결과는 정상적으로 출력되지만,

 

56/0의 결과는 ZeroDivisionError 메시지가 출력됩니다.

 

0으로 나눌 수가 없다는 것이죠.

 

에러 메시지 덕분에 8로 나눈 결과는 출력되지 않습니다.

 

이 경우 try와 except 문으로 예외 처리하여

 

마지막 8로 나눈 결과까지 실행할 수 있는데요.

 

return값에 ZeroDivisionError가 출력될 경우에

 

어떻게 처리할 것인지를 정해주면 됩니다.

def apple(a):
    try:
        return 56 / a
    except ZeroDivisionError:
        print('It cannot be divided by zero.')

print(apple(2))
print(apple(7))
print(apple(0))
print(apple(8))

위 코드를 실행한 결과는 아래와 같습니다.

정상적으로 실행되고 마지막 출력결과까지 확인할 수 있지만...

 

None이 뜨는게 좀 맘에 들지 않습니다.

 

아래와 같이 수정해보았습니다.

def apple(a):
    try:
        print(56/a)
    except ZeroDivisionError:
        print('It cannot be divided by zero.')

apple(2)
apple(7)
apple(0)
apple(8)

출력 결과는 아래와 같습니다.

None이 출력되지 않아 이전보단 나은 것 같습니다.

 

 

여기까지 예외 처리에 대해 알아보았습니다.

반응형