Python에서 Exception Handling

https://stackoverflow.com/questions/30675410/exception-handling-what-level-to-put-it-at

https://eli.thegreenplace.net/2008/08/21/robust-exception-handling/

몇가지 글을 읽어봤는데 저희 설계에 Exception 처리에 대한 내부 가이드가 없어서 검색한 글을 내 방식대로 번역 하였다.

기본적으로 모듈 내에서 처리 해서 캡슐화를 깨지 말아야 한다. 공개된 인터페이스만 호출자가 사용하도록 하는 것인데 익셉션 역시 사용자 정의 익셉션을 문서를 통해 공개하여 사용토록 한다.

처리 할 수 있는 에러는 되도록 해당 모듈 내에서 처리 하며, 그것을 호출 하는 사용자에게 내부에서 어떤 Exception 이 발생할 지를 하나씩 파악하게 하는 어려움을 쥐어주지 말자. 이렇게 되면 사용자가 머리 아파서 에라모르겠다 모든 Exception 을 한번에 처리하자!! 라고 결심하게 된다. 친절한 모듈은 사용자에게 Exception 처리를 떠넘기지 말아야 할 것이다. 다만 모듈 내에서 처리 불가능한, 회복 불가능한 Exception 도 있다. 형제 백엔드 호출 불가, DB접속 오류 등은 API 레벨에서 글로벌 Exception 핸들러가 동작해야 할 수 있다.

Leave a Reply

Your email address will not be published. Required fields are marked *