python version: 2.7
자바(Java)의 try { ... } catch (Exception e) { e.printStackTrace(); } 과 비슷한 개념으로 코드의 trace stack을 확인하는 방법:
import traceback
try:
....
except:
traceback.print_exc()
오히려 try, except 없이 그냥 코드를 실행하면 프로세스는 당장 중단되더라도 call stack을 볼 수 있었는데, try, except로 감싸고 나서는 익셉션을 보는 방법이 뭔지 몰라서 그냥 print나 대충 해보다가 찾아보게 되었다. 이와 관련해서 StackOverflow에 올라온 글을 보니 내가 모르고 있어서 그렇지 traceback 관련 사용법도 sys.exc_info와 연동하는 등 다양한 것 같다 [1].
여담이지만, 자바에서는 Exception이 throw되는 지점에서 try, catch를 작성하지 않으면 컴파일 에러를 내면서 작성을 강요하는 데 비해 파이썬은 익셉션 처리를 하든지 말든지 그냥 두는 것이 참... 비슷한 경우로 변수의 타입을 지정하지 않고 쓰는 것과 궤를 같이 하는 것 같기도 하고, 아무튼 C/C++, Java에만 익숙해져 있다가 참 적응이 안되는 기분이다.
그래도 지금은 빨리 코딩해서 데이터부터 만들어 내야 하니까 일단 적응이 안되든지 말든지 빨리 코딩하는 걸로.
<참고자료>
[1] http://stackoverflow.com/questions/3702675/how-to-print-the-full-traceback-without-halting-the-program
'Development > Python' 카테고리의 다른 글
Jinja2에서 데이터 타입 변환 (casting) (0) | 2018.03.02 |
---|---|
Python-firebase 사용시 SNIMissingWarning 경고가 뜨는 경우 (0) | 2017.07.31 |
Flask-RESTful에서 REST API 처리를 여러 개의 소스코드 파일로 분리하기 (0) | 2017.07.18 |
Ubuntu에서 python3, pip3를 python, pip로 쓰기 (0) | 2017.07.07 |
파이썬(Python)의 생산성 (0) | 2017.04.26 |