2008. 7. 22.

자바/발생한 에러의 근본원인 알아내기

자바 개발시에는 이미 작성된 여러가지 API를 사용하여 개발하게 되는데요.
특정 영역에서 예외가 발생했을 때, 메소드 호출의 상위 스택 영역에서 발생한 예외를 다시 한번 포장하고, 또 포장하고, 또 포장하고.. 또 다른 상위개념의 예외에 의해 겹겹이 쌓이게 됩니다. 최종적으로 개발자에게 전달된 예외는 너무 넓은 의미를 포함하는 예외로서 그 원인을 쉽게 알아챌 수가 없는 경우가 있습니다. 이럴 경우에 유용한 코드를 작성해보았습니다.

try {
...
} catch ( Throwable throwed ) {
String errorMsg = null;
while ( throwed != null ) {
errorMsg = throwed.getLocalizedMessage();
if ( errorMsg == null ) throwed = throwed.getCause();
else break;
}
System.out.println(errMsg);
}

댓글 없음: