본문 바로가기
프로그래밍/Pyton.

[Python] Java와 다른 예외처리(try-except)

by _Chavi 2022. 6. 21.

기존에 사용하던 Java와 다르게 동작하는 Python의 Exception 이후 처리에 대해 기록합니다.

 

문법과 기대
try:
    # 할 일을 하다가
    do_someting()
except Exception as e:
    # 실수가 생겼다!
    do_logging()
finally:
    # 실수 했더라도 이건 해야해
    do_must()
# 실수는 처리했으니 계속해야지
do_continue()

위와 같은 코드에서, 결국엔 do_continue()를 실행해 나갈 것이라 기대했다. 그러나...

 

결과
try:
    # 할 일을 하다가
    do_someting()
except Exception as e:
    # 실수가 생겼다!
    do_logging()
finally:
    # 실수 했더라도 이건 해야해
    do_must()
# 실수가 있었으니 이후의 것은 정상 동작 보장 할 수 없겠지? (꾸액🥴)
do_continue()

계속해서 실행하지 않고 실행이 종료되어 버렸다. 그래서 아래와 같이 수정하였다.

 

해결방법
try:
    # 할 일을 하다가
    do_someting()
except Exception as e:
    # 실수가 생겼다!
    do_logging()
    # 실수 하더라도 포기하지마!
    pass
finally:
    # 실수 했더라도 이건 해야해
    do_must()
# 그래 난 할 수있어!
do_continue()

위와 같이 명시적으로 선언 시 코드가 계속해서 실행된다.

 

댓글