79. 파이썬 traceback 표준 라이브러리

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

지난 포스팅에서 파이썬 표준 라이브러리 중 threading 에 대해서 알아보았습니다.
이번 포스팅에서는 파이썬 표준 라이브러리 중 traceback 에 대해서 공부해 보도록 하겠습니다

Smartdev.kr Table of Contents

파이썬 표준 라이브러리

traceback

traceback 은 우리가 프로그래밍을 하고 실행을 했을때 발생하는 오류를 추적하려 할 때 사용되는 모듈 입니다.
간단하게 아래의 예제 코드를 살펴보겠습니다.

Python
# error_test.py
def a():
    return 1 / 0

def b():
    a()

def main():
    try:
        b()
    except:
        print("오류가 발생했습니다.")

main()

위 코드를 실행시켜 보겠습니다.

Python
(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python error_test.py
오류가 발생했습니다.

바로 print 문에 의해서 오류가 발생했다는 메시지를 출력 해 줍니다.
main() 함수가 시작 되면서 b() 함수를 호출하는데 b() 함수에서 a() 함수를 호출해서 1 을 0 으로 나누라는 명령에 오류가 발생해서 “오류가 발생했습니다.” 라고 메시지를 출력을 합니다.
실제로 이런 간단한 프로그램인 경우에는 그나마 괜찮을 수도 있지만 복잡한 프로그램이라면 어디에서 오류가 발생했는지 찾기가 힘들어집니다.

그래서 이런 때 이 프로그램에서 어떤 코드에서 오류가 발생했는지 위치와 원인을 정확히 판단할 수 있도록 traceback 모듈을 사용하여 프로그램을 업그레이드 하는 것입니다.
아래 코드 처럼 오류가 발생한 위치에 traceback 모듈을 적용을 해 보겠습니다.

Python
# traceback_test.py
import traceback

def a():
    return 1 / 0

def b():
    a()

def main():
    try:
        b()
    except:
        print("오류가 발생했습니다.")
        print(traceback.format_exc())

main()

이전과 동일한 코드에 print(traceback.format_exe()) 이라는 문장만 추가를 했습니다.
결과는 아래와 같이 나옵니다.

Python
(py_study_31010) D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST>python traceback_test.py
오류가 발생했습니다.
Traceback (most recent call last):
  File "D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\test.py", line 12, in main
    b()
  File "D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\test.py", line 8, in b
    a()
  File "D:\Dropbox\02.My_Job\80.Study\01.Python\00.study_python_3.11.0\01.TEST\test.py", line 5, in a
    return 1 / 0
ZeroDivisionError: division by zero

traceback 모듈을 통해 오류 추적을 진행하고 main() 함수에서 b() 함수를 호출하고 b() 함수에서 다시 a() 함수를 호출해서 1 / 0 을 실행하려 했기 때문에 0 으로 나눌 수 없다는 ZeroDivisionError 가 발생했다는 것을 로그를 통해 정확하게 확인을 할 수가 있습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
79. 파이썬 traceback 표준 라이브러리

Leave a Comment