반응형

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

반응형
블로그 이미지

Bryan_

,