예외 3

모듈간 예외 처리 전략

모듈화 된 시스템은 각 모듈이 독립적으로 기능을 수행할 수 있도록 만들어 준다. 그리고 각 모듈에서 발생하는 예외는 어떻게 관리하고 전달할지에 대한 고민이 필요하다.    평소에 예외 처리 전략을 공통으로 발생하는 예외와 모듈에서 발생할 수 있는 예외 이렇게 구분해서 사용하고 있었다. 아래 영상을 보면서  "모듈로 구성할 때, 해당 모듈에서 발행하는 예외는 그 모듈 내에 두어야 한다." 를 알게 되었다.  https://www.youtube.com/watch?v=bjaiaEEllMI     모듈화 된 시스템의 원칙 중 하나는 모듈은 스스로 독립적일 수 있어야 한다.    즉, 모듈은 다른 시스템에 의존하지 않고, 독립적으로 기능을 수행할 수 있어야 한다.      그래서 예외 처리할 때는 모듈에서 발생하..

Java/Java 2025.02.09

[이펙티브 자바]Item 73 추상화 수준에 맞는 예외를 던지라.

핵심 정리 아래 계층의 예외를 예방하거나 스스로 처리할 수 없고, 그 예외를 상위 계층에 그대로 노출하기 곤란하다면 예외 번역을 사용하라. 이때 예외 연쇄를 이용하면 상위 계층에는 맥락에 어울리는 고수준 예외를 던지면서 근본 원인도 함께 알려주어 오류를 분석하기에 좋다. 메서드가 저수준 예외를 처리하지 않고 바깥으로 전파해버릴 때 발생하는 일 1. 수행하려는 일과 관련 없어 보이는 예외가 발생 2. 내부 구현 방식을 드러내어 윗 레벨 API를 오염 3. 구현 방식을 바꾸면 다른 예외가 튀어나와 기존 클라이언트 프로그램을 깨지게함 예외 번역(exception translation) 상위 계층에서 저수준 예외를 잡아 자신의 추상화 수준에 맞는 예외로 바꿔 던지는 것이다. /** * 이 리스트 안의 지정한 위..

[이펙티브 자바] Item 72 표준 예외를 사용하라.

핵심 정리 더 많은 정보를 제공하고 싶은 경우에는 표준 예외를 확장해도 좋다. 하지만 예외는 직렬화할 수 있는데, 직렬화에는 많은 부담이 따르므로 예외를 새로 만들지 않는 것을 권장된다. (자바 라이브러리는 대부분 API에서 쓰기에 충분한 수의 예외를 제공한다.) 표준 예외를 재사용시 장점 1. 자신의 API가 다른 사람이 익히고 사용하기 쉬워진다. 많은 프로그래머에게 이미 익숙해진 규약을 그대로 따르기 때문이다. 2. 자신의 API를 사용한 프로그램도 낯선 예외를 사용하지 않게 되어 읽기 쉽다. 3. 예외 클래스 수가 적을수록 메모리 사용량도 줄고 클래스를 적재하는 시간도 적게 걸린다. 예외 예외 주요 쓰임 예시 IllegalArgumentException 허용하지 않는 값이 인수로 건네졌을 때(nul..