Python - traceback

헨도·2022년 12월 2일
0

Python

목록 보기
1/12
post-thumbnail

Python

오류 추적과 그 원인을 알기 위해

traceback

traceback은 프로그램 실행 중 발새한 오류를 추적하고자 할 때 사용하는 모듈이다.

def a() :
    test = 1
    return test / 0

def b() :
    a()
    
def main() :
    try :
        b()
    except :
        print("오류 발생")
    
main()
>>> 오류 발생

위와 같이 간단한 파이썬 파일이 아닌 복잡한 파이썬 파일이라면 오류가 발생하는지 판단하기는 어렵습니다.

이때 이 코드에서 오류가 발생한 위치와 원인을 정확히 판단할 수 있도록 코드를 업그레이드하려면..

traceback 모듈 적용

오류가 발생한 위치에 아래와 같은 trace 모듈을 적용하면, 오류가 발생한 위치와 원인을 정확히 판단할 수 있다.

import traceback

그리고 오류가 발생한 위치에 아래와 같은 문장을 추가한다.

print(traceback.format_exc())

traceback 모듈의 format_exc() 함수는 "오류 추적 결과를 문자열로 반환해주는 함수"이다.

traceback 모듈 적용한 코드

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
profile
Junior Backend Developer

0개의 댓글