Python Basic

try, except 블럭으로 에러 및 예외 처리 - Python(파이썬)

cyberman 2020. 11. 13. 18:09

코드 실행 시 특정한 사유로 인해 에러가 발생하는 경우 파이썬에서는 스크립트 실행이 중단되어 버린다.

이 때 try, except를 활용해 에러가 발생할 가능성이 있는 예외 상황들을 지정하면 중단 없이 스크립트를 계속 진행시킬 수 있다.

 

기본 코드:

try:
     코드
except:
     예외 발생 시 진행할 코드
try:
    ['a','b'].index('c')
except:
    print('Search Failed.')

a와 b라는 원소만 존재하는 리스트에서 c의 인덱스 값을 찾으려고 하고 있으니 당연히 에러가 발생할 수밖에 없다.

이 코드를 실행하면 except 블럭으로 넘어가 코드가 진행된다.

 

결과:

Search Failed.

 

 

특정 예외 상황을 지정해 에러를 처리하도록 할 수도 있다. 이 때, except 뒤에 에러코드를 부여하면 된다.

try:
     코드
except 예외코드:
     예외 발생 시 진행할 코드

예외코드 종류는 다양하다. ValueError, ZeroDivisionError, IndexError 등등...

내장된 Exceptions 종류와 계층도는 여기서 확인할 수 있다 -> docs.python.org/3.9/library/exceptions.html

 

 

위의 예시는 ValueError에 해당하므로 아래와 같이 코드를 작성할 수 있다.

try:
    ['a','b'].index('c')
except ValueError as e:
    print('Search Failed.', e)

이 때, print(e)를 통해 에러 메시지를 출력할 수 있다. 왜 에러가 발생했는지 아는 데 도움이 된다.

 

결과:

Search Failed. 'c' is not in list

 

 

Exception은 최상위 예외코드로 파이썬에 내장된 모든 예외 상황들을 처리할 수 있다.

try:
    ['a','b'].index('c')
except Exception as e:
    print('Search Failed.', e)

결과는 위의 예시와 동일하다.

Search Failed. 'c' is not in list