2.12.1 예외 발생 확인하기
여기서 조금 더 필요한 기능이 있습니다. 앞 예처럼 단순히 10을 0으로 나눈 경우 어디서 예외가 발생했는지 바로 알 수 있지만, 코드가 복잡해지면 예외가 발생했다는 것은 알겠으나 도대체 어디서 발생했는지 알 수가 없습니다. 이 경우 예외가 발생한 부분을 정확히 집어 주는 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
밑줄 친 파일 경로를 클릭하면 마우스 커서를 예외가 발생한 라인으로 이동시켜 주므로 어디서 에러가 발생했는지 바로 확인할 수 있습니다.