설.현.아빠
e.printStackTrace() 본문
e.getMessage() = 에러 이벤트와 함께 들어오는 메세지를 출력한다. e.getMessage(): 출력문구 e.toString() = 에러 이벤트의 toString()을 호출해서 간단한 에러 메시지를 확인한다. e.toString(): java.lang.Exception: 출력문구 e.printStackTrace() = 에러 메세지의 발생 근원지를 찾아서 단계별로 에러를 출력한다. e.printStackTrace(): java.lang.Exception: 출력문구 at ExThrowException.main(ExeThrowException.java:6) [출처] e.getMessage(),e.toString(),e.printStackTrace() 사용하기|작성자 하이트 JAVA 코딩시 가장 많이 사용하는 코드 중 하나가
try {
// ...
}
catch(Exception e){
e.printStackTrace();
}
이다.
printStackTrace() 외에도 printStackTrace(PrintWriter writer); 도 존재하고 printStackTrace(PrintStream s); 역시 존재하기 때문에 stackTrace 의 내용을 파일등에 남기는 것은 그리 어려운 일이 아니다.
하지만 Log4J 등을 사용하거나 별도로 자신이 만든 로그라이브러리등을 사용할때는, 이를테면
logger.error(e.printStackTrace());
이런식으로 사용할 수가 없기 때문에, StackTrace 의 내용을 얻어야 하는데...
getMessage() 또는 getLocalinzedMessage()를 사용할 수도 있지만 StackTrace에 비해서는 디버깅 정보가 약간 빈약하기 때문에 적절하지 못하다.
JDK 1.4부터 getStackTrace() 라는 메소드가 추가되었는데 이 메소드는 StackTraceElement의 배열을 리턴해준다.
따라서 이를 이용해서
try {
// ...
}
catch(Exception e){
StackTraceElement[] elem = e.getStackTrace();
for ( int i = 0; i < elem.length; i++ )
logger.error(elem[i]);
}
와 같은 식으로 처리를 해주면 종종 쓸만하다.
'안드로이드 > Exception' 카테고리의 다른 글
[허니몬님자바강좌] 제 07 장 Exception(예외) 처리 (0) | 2011.02.11 |
---|---|
try {} catch{} 사용 (0) | 2011.02.11 |