기존에 사용하던 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()
위와 같이 명시적으로 선언 시 코드가 계속해서 실행된다.
'프로그래밍 > Pyton.' 카테고리의 다른 글
[Python] Uvicorn 일자별 로그 쌓기(with. FastAPI) (0) | 2022.07.26 |
---|---|
[Python] requests 사용시 SSL 서명 오류 (0) | 2022.06.28 |
[Python] Switch Case가 없어요 (0) | 2022.06.13 |
[PyCharm] Method 'method' may be 'static' 해결 (0) | 2022.06.09 |
[Pyton] 프로젝트 패키지 한번에 설치 하기 (0) | 2022.06.08 |
댓글