Chained Exception (연결된 예외)
- 예외는 다른 예외를 유발할 수 있다.
- 예외 A가 예외 B를 발생시켰다면 예외 A는 B의 원인 예외임
- 원인 예외를 새로운 예외에 등록한 후 다시 새로운 예외를 발생시키는데 이 것을 '예외연결'이라고 한다.
initCause()
: 지정한 예외를 원인 예외로 등록하는 메소드
getCause()
: 원인 예외를 반환하는 메소드
public void someMethod() throws Exception {...}
public void someIrresponsibleMethod() throws Exception{
this.someMethod();
}
이렇게 처리하면 someMethod()
에서 발생한 에러가 someIrresponsibleMethod()
의 throw를 통해서 그대로 다시 흘러나가게 됨
public void someMethod() throws IOException{...}
public void someResponsibleMethod() throws MoreSpecificException{
try {
this.someMethod();
} catch (IOException e){
throw new MoreSpecoficException(e.getMessage());
}
}