traceback은 프로그램 실행 중 발새한 오류를 추적하고자 할 때 사용하는 모듈이다.
def a() :
test = 1
return test / 0
def b() :
a()
def main() :
try :
b()
except :
print("오류 발생")
main()
>>> 오류 발생
위와 같이 간단한 파이썬 파일이 아닌 복잡한 파이썬 파일이라면 오류가 발생하는지 판단하기는 어렵습니다.
이때 이 코드에서 오류가 발생한 위치와 원인을 정확히 판단할 수 있도록 코드를 업그레이드하려면..
오류가 발생한 위치에 아래와 같은 trace 모듈을 적용하면, 오류가 발생한 위치와 원인을 정확히 판단할 수 있다.
import traceback
그리고 오류가 발생한 위치에 아래와 같은 문장을 추가한다.
print(traceback.format_exc())
traceback 모듈의 format_exc() 함수는 "오류 추적 결과를 문자열로 반환해주는 함수"이다.
import traceback
def a() :
test = 1
return test / 0
def b() :
a()
def main() :
try :
b()
except :
print("오류 발생")
print(traceback.format_exc())
main()
오류 발생
Traceback (most recent call last):
File "c:\Users\전은배\Desktop\test\test.py", line 12, in main
b()
File "c:\Users\전은배\Desktop\test\test.py", line 8, in b
a()
File "c:\Users\전은배\Desktop\test\test.py", line 5, in a
return test / 0
~~~~~^~~
ZeroDivisionError: division by zero