[python] try ~ except를 이용한 에러처리
try except
try except는 에러를 만났을때 다양한 처리가 가능하다.
구문
try:
# 실행 구문
..........
except:
# 에러가 발생했을때 처리 구문
..........
finally
# 최종
..........
except
except는 어떤 에러인지에 따라 그 부분을 명시해 주어야 한다. 구문에서 에러가 발생하면 그 앞 구문을 그대로 넣어 주면 됩니다.
- json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
import json
try:
except json.decoder.JSONDecodeError:
print('The string does NOT contain valid JSON')
except:
finally
- ValueError: could not convert string to float:
try:
except ValueError:
..........
except:
finally
try:
except ValueError as e:
print('I got a ValueError - reason "%s"' % str(e))
except:
finally
raise
raise는 에러를 발생시킬때 사용합니다.
프로그램에서 raise를 만나면 프로그램이 죽으면서 자세한 내용을 디스플레이 합니다.
raise + Except Error
아래처럼 하면 ValueError 에 대한 에러를 발생시킵니다.
raise ValueError
raise + 메시지
raise Exception('어느 어느 코드에서 에러 발생')
traceback
except를 사용할 경우 print('I got a ValueError - reason "%s"' % str(e)) 최종적인 단순한 메시지 만이 확인 가능합니다.
raise를 사용하면 자세한 에러내용과 발생한 곳등을 볼 수 있지만 이럴 경우 프로그램이 죽어 버리는 단점이 있습니다.
이럴 경우 사용할 수 있는 것이 traceback 입니다.
import traceback
..........
try:
except ValueError as e:
traceback.print_exc()
finally:
pass