더북(TheBook)

2.12.1 예외 발생 확인하기

여기서 조금 더 필요한 기능이 있습니다. 앞 예처럼 단순히 100으로 나눈 경우 어디서 예외가 발생했는지 바로 알 수 있지만, 코드가 복잡해지면 예외가 발생했다는 것은 알겠으나 도대체 어디서 발생했는지 알 수가 없습니다. 이 경우 예외가 발생한 부분을 정확히 집어 주는 traceback 모듈이 필요합니다. 다음과 같이 traceback 모듈을 import하고 이후 예외를 처리하는 부분에 traceback.format_exc()를 출력하면 에러가 발생한 라인을 정확히 알려 줍니다.

> import traceback
>
> try:
>     var = 10 / 0
> except Exception as e:
>     print("예외가 발생했습니다.")
>     print(e)
>     print(traceback.format_exc())
예외가 발생했습니다.
division by zero
Traceback (most recent call last):
  File "C:/Users/82103/PycharmProjects/SystemTrading/test.py", line 5, in <module>
    var = 10 / 0
ZeroDivisionError: division by zero

밑줄 친 파일 경로를 클릭하면 마우스 커서를 예외가 발생한 라인으로 이동시켜 주므로 어디서 에러가 발생했는지 바로 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.