2012-06-13 3 views

답변

7

예. 다음 예제에서 stackTraceElement에 예외에 대한 많은 정보가 있습니다.

지정이 방법

private static String getExceptionDetails(Activity act, Exception e) { 
    StackTraceElement[] stackTraceElement = e.getStackTrace(); 

    String fileName = ""; 
    String methodName = ""; 
    int lineNumber = 0; 

    try { 
     String packageName = act.getApplicationInfo().packageName; 
     for (int i = 0; i < stackTraceElement.length; i++) { 
      if (stackTraceElement[i].getClassName().startsWith(packageName)) 
      { 
       fileName = stackTraceElement[i].getFileName(); 
       methodName = stackTraceElement[i].getMethodName(); 
       lineNumber = stackTraceElement[i].getLineNumber(); 
       break; 
      } 
     } 
    } catch (Exception e2) { 
    } 

    return fileName + ":" + methodName + "():line " 
      + String.valueOf(lineNumber); 
} 
+0

당신은 Exception을 로그 할 수 있으며 전체 스택 트레이스를 출력 할 것입니다. –

+0

stackTraceElement에는 많은 정보가 있습니다. 그는 그것을 사용자 정의 할 수 있습니다. – breceivemail

2

확인하셨습니까?

exception.printStackTrace() 
+1

로이 문자열에서 줄 번호를 얻기 어렵다. – pick

+0

정교하게 주시겠습니까? –

+0

@pick 콘솔을 읽지 않으면 세부 정보를 얻을 수 없습니다. 이것은 할 수있는 유일한 방법입니다. – Prathap

-1

체크 -

exception.getMessage() 
2
exception.printStackTrace() 

라인 번호 및 예외를 생성 한 메소드 이름을 보여준다.

+0

이 문자열에서 줄 번호를 따로 얻는 것이 어렵다는 것을 언급했습니다. – pick

0

사용 시도의 catch 블록은

try{ 

    // here add your code 

    }catch(Exception e){ 
    Log.e("error",e.toString()); 
    }