반응형
Python에서 에러 메시지를 상세히 출력하여 알림 등을 받고 싶은 경우가 종종 있습니다.
단, 기본 try-except 구문에서는 오류 메시지를 상세히 출력해주지는 않는데요.
이 과정을 해결하기 위하여 traceback 모듈의 기능을 활용하는 방법과 예시 결과를
try-except 케이스와 비교하여 간단하게 정리해보도록 하겠습니다.
기본: try-except 구문 오류 메시지 출력
먼저, 아래와 같은 아주 간단한 로그인 함수 예시를 들어보겠습니다.
def is_success_login(id, pw, user_info):
if user_info[id] == pw:
return True
else:
return False
이제 user_info 딕셔너리 내에 없는 id를 조회하도록 하여 KeyError를 유발해 볼 것인데요.
먼저 try-except 구문의 기능을 통하여 오류 메시지 탐색을 시도해 보겠습니다.
try:
user_info = {'abcd' : '1234', 'efgh' : '5678'}
if is_success_login('ijkl', '1111', user_info):
print('로그인에 성공하였습니다!')
else:
print('로그인에 실패하였습니다!')
except Exception as e:
print('Error Message:', e)
캡처된 오류 메시지는 다음과 같은데요.
너무 단순하여 상세한 오류 위치와 원인을 파악하기 어려운 것을 볼 수 있습니다.
반응형
상세: traceback 모듈 활용 오류 메시지 출력
위 케이스의 오류 메시지를 이번에는 traceback 모듈을 통하여 가져와보도록 하겠습니다.
모듈을 임포트하고, 윗 코드에서 except 부분을 아래와 같이 고쳐주시기만 하면 됩니다.
import traceback
...
except:
traceback_message = traceback.format_exc()
print(traceback_message)
traceback.format.exc() 메소드를 활용한 결과는 터미널에서 실행 후
오류가 발생했을 때와 유사하게 상세한 에러 메시지를 캡처할 수 있습니다.
실제 에러 메시지 캡처 예시는 다음과 같습니다.
위와 같은 형태로 상세한 오류 메시지 로그를 가져올 수 있게 된다면
에러 원인 파악 및 디버깅이 크게 용이해질 수 있을 것입니다.
'Python > Utils' 카테고리의 다른 글
파이썬 테스트 케이스 모듈 unittest 사용법 (2) | 2024.01.10 |
---|---|
파이썬 한국어 로마자 표기 변환 방법(korean_romanizer, 네이버 API) (0) | 2023.12.12 |
파이썬으로 구글 검색 결과 링크 및 텍스트 추출하기 예제 (0) | 2023.10.11 |