실패할 수 있는 코드와 복구 범위를 구분합니다.
try에는 실제로 실패할 수 있는 최소 범위만 넣고 except에서 예상한 예외를 구체적으로 잡습니다. 예외 객체의 메시지는 원인을 설명하며 처리할 수 없다면 상위 호출자에게 전파합니다.
반복문은 세 문자열을 차례로 int로 바꿉니다. 42와 17은 else 블록에서 변환 성공을 출력하고, hello는 ValueError가 나서 except 블록이 실패 메시지를 출력합니다. 어느 경우든 finally가 마지막에 처리 종료를 출력하므로 값마다 두 줄씩 결과가 남습니다.
여러 예외는 각기 다른 안내와 복구가 필요하면 except를 나눕니다. else는 예외가 없을 때, finally는 성공 여부와 무관하게 실행됩니다.
사용자에게는 이해할 수 있는 메시지를 보여주되 내부 로그에는 원래 예외와 문맥을 남겨 원인을 추적할 수 있게 합니다.
except Exception으로 모든 오류를 잡고 무시하면 프로그래밍 버그까지 숨깁니다.
직접 바꿔보세요0으로 나누는 경우도 별도 except로 처리해보세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.