본문 바로가기

개발일지/TIL

[ 230619 ] Chained Exception ?

궁금한 계기

강의를 듣다가 Chained Exception 내용이 나왔다. Exception은 흔히 들어본 반면 Chained Exception 너무나 생소한 단어였다. 검색을 해보며 Chained Exception은 무엇이며 어떻게 사용할 수 있는지에 대해 찾아보기로 했다. 오라클 공식 문서와 블로그를 통해 감을 잡을 수 있었다.

Chained Exception 란?

예외 간의 원인과 결과를 연결해 준다. 주로 여러 가지 예외를 큰 분류 예외로 묶어서 다루거나 Checked Exception을 Unchecked Exception으로 포장을 할 때 사용을 한다. 에러가 있을 경우 정확한 원인을 찾을 수 있도록 하기 위해 사용하기도 한다. 예시로 흔히 우리가 IDE에서 에러가 뜰 때 쭉 보이는 메시지들을 들 수 있을 것 같다.

사용하는 방식?

initCause 메서드와 생성자를 통해서 원인이 되는 Exception을 등록을 할 수 있다. getCause 메서드를 통해 원인이 되는 Exception을 가져올 수 있다.

 

[ Cause 등록 - initCause 메서드 ]
catch(Exception e){
   CustomException customException = new CustomException(msg);
   customException.initCause(e);
   throw customException;
}

[ Cause 등록 - 생성자 ]
catch(Exception e){
   CustomException customException = new CustomException(e);
   throw customException;
}

[ Cause 조회 ]
catch(Exception e){
   e.getCause();    
}

배운 점

Chained Exception이 예외를 추적을 할 수 있고 그것을 통한 이점을 누릴 수 있다는 것은 알 수 있었다. 하지만 실제 적용해 본 적이 없기 때문에 그렇게 유용한지에 대해서는 와닿지가 않는다. 이후 프로젝트를 하며 실제로 사용해 볼 수 있는 기회가 있다면 지금 찾아본 것들이 도움이 되지 않을까 싶다.

참고

 

Chained Exceptions (The Java™ Tutorials > Essential Java Classes > Exceptions)

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated

docs.oracle.com