2011-04-01 1 views
2

얘들 아 발생하는 내부 예외의 클래스와 메소드 이름을 얻는 방법, 그건 내가 다음과 같은 방법을 응용 프로그램 클래스안드로이드는 - 그것은 내가 중앙 위치에서 내 안드로이드 응용 프로그램 내의 모든 예외를 처리 할

입니다 내 응용 프로그램 클래스 :

public void HandleException(Exception e) 
{ 
    String appName = getString(R.string.app_name); 
    String className = ""; // magic method to find out the original class name where the exception occurred 
    String methodName = ""; // magic method to find out the original method name where the exception occurred 
    Log.e(appName, className + " : " + methodName + " - " + e.getMessage()); 
} 

모든 것을 지금없는 것은

사람이

을 도울 수있는 예외가

발생하는 내 원래의 클래스와 메소드 내 클래스 이름과 methodName로 변수를 채우는 마법의 방법입니다 사전에

덕분에 ...

답변

3

사용 e.getStackTrace()은 (StackTraceElement.getClassName() 사용) 패키지 이름과 클래스 이름을 검색이 배열을 통해 이동 - 여기 클래스 명 "마법의 방법"이다. 그런 다음 메서드 이름을 StackTraceElement.getMethodName()으로 가져옵니다.

+0

패키지 이름으로 클래스 이름 검색 - 어떤 클래스에서 예외로 검색 할 클래스 이름을 어떻게 알 수 있습니까? – Raj

+1

예외로 클래스 이름에 패키지 이름이 포함되어 있어야합니다. 예를 들어'com.raj.application'으로 검색하십시오. 'if (element.getClassName(). contains (yourPackageName))) {// 사용자 클래스}' – ernazm

관련 문제