책 읽기

[Clean Code/클린 코드] - 오류 처리

지팡구 2023. 6. 18. 19:07

Chapter.7 오류 처리

 

<오류 코드보다는 예외를 사용하자 ! >

예외를 던지고 코드를 분리함으로써 각 개념을 독립적으로 이해할 수 있습니다. 오류로 코드를 처리하게되면 코드의 가독성이 낮아지고 계층의 깊이가 깊어집니다.

그래서 예외를 던지는 것이 더욱 좋습니다.

 

💡 Checked Exeption(확인된 예외)는 OCP (Open Closed Principle)를 위배한다.

메서드에서 확인된 예외를 던졌는데, Catch 블록이 3단계 위에 있다면 그 사이 메서드 모두가 선언부에 해당 예외를 저의해야 한다.

즉, 하위 단계에서 코드를 변경하면 상위 단계 메서드 선언부를 전부 고쳐야 함을 의미한다.

결국 하위 메서드나 함수에서 throws를 선언해줘야 한다.

그래서 미확인 예외 (Unchecked Exeption)을 사용해야합니다.

 

확인된 예외(Checked Exeption)이 왜 OCP를 위배할까?

💡 OCP는 SOLID 원칙의 일부로 개방 폐쇄 원칙입니다. 이는 확장에는 열려있고, 수정에는 닫혀있어야 한다는 의미를 가지고 있는데, 새로운 기능을 추가할 때 기존의 코드를 변경하지 않으면서 확장할 수 있는 유연 소프트웨어 설계를 의미합니다.

확인된 예외는 호출자에게 예외를 처리하도록 요구해서 만약 메서드에 새로운 예외가 추가되면, 이를 호출자에게도 알려줘야 합니다. 이로인해 기존의 코드를 수정해야하는 점이 생기기에 OCP를 위배합니다.

확인된 예외는 예외 처리를 강제하므로 호출부에서 해당 예외를 처리하지 않으면 컴파일 오류가 발생합니다.

 

💡 NULL을 전달하지도, 반환하지도 말 것 ! ( Java 8 부터는 Optional 객체를 이용 )

 

비즈니스 로직에 관한 범위 설정에 인해 DTO가 바뀔 것이다.

그래서 비즈니스 로직의 범위를 설정하는 것이 가장 중요하다 → 이 내용은 회사마다 상이하고, 클래스마다 상의하다.