2012-05-11 2 views
3

내 프로젝트에서 Apache Commons lang을 2.4에서 3.1로 업그레이드하려고합니다. 내 구현에는 3.1에서 더 이상 존재하지 않는 ExceptionUtil.getFullExceptionTrace (e)에 대한 참조가 있습니다. 제거 이유는Exception Full stacktrace

"그들은 모두 무 조작의 유형은 JDK 1.4. LANG-491를 가지고 이더니로 isThrowableNested, isNestedThrowable 및 getFullStackTrace 제거"

로 나열했다. 이 변경 주위 몇 가지 질문 :

  1. 이것은 우리가 전체 스택 추적을 검색하는 다른 방법을 모색 할 필요가 또는 우리는 단순히 대신 ExceptionUtils.getStackTrace (예)로 대체 할 수 있음을 의미 만약 내가 혼란 스러워요.

  2. jdk 1.4 이후에 변경된 사항에 대한 아이디어가 있습니까?

  3. 여기서 e가 내 Exception 인스턴스 인 e.toString()을 단순히 수행 할 수 없습니까?

감사

답변

5

자바 1.4은 모든 예외 클래스에 대한 부모의 Throwable 클래스 getCause() 방법을 소개했다. 당신이 String으로 스택 트레이스를 취득해야하는 경우는 다음과 같이 ExceptionUtils.getStackTrace (예) 또는 무언가를 사용할 수 있습니다

Exception e = ... 
    StringWriter sw = new StringWriter(); 
    e.printStackTrace(new PrintWriter(sw)); 
    String stack Trace = sw.toString(); 

JIRA issue LANG-491에 ExceptionUtil에서 제거 방법에 대한 자세한 설명을 참조하십시오.

+0

감사합니다. Eugene. 토론 목록에 "getFullStackTrace 다음 약간의 의미가 있습니다 .1.4 +에서 한 항목을 인쇄합니다." 그러면 fullstackTrace를 어떻게 얻을 수 있습니까? – phewataal

+0

내 대답이 업데이트되었습니다 –

+0

그렇다면 'ExceptionUtils.getStackTrace (e)'와 동등한 해결책이 있습니까? 아니면 여기에 문제가 있습니까? – JBA