2011-04-01 99 views
2

嘿傢伙,我要處理我的Android應用程序內所有異常在一箇中心位置的異常的類和方法名,它是應用程序類機器人 - 如何讓內所發生

我有一個方法,像下面在我的應用程序類:

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()); 
} 

一切,現在缺少的是神奇的方法,填充我的className和methodName的變量與原來的類和方法內發生異常

誰能幫助

在此先感謝...

回答

3

使用e.getStackTrace(),通過這個陣列(使用StackTraceElement.getClassName())搜索類名與包名 - 這裏是你的類名「魔術方法」。然後獲得方法名稱StackTraceElement.getMethodName()

+0

當你寫的 - 在與您的包名類名 - 如何將我知道的類名來搜索作爲異常可以在任何類中發生......在異常 – Raj 2011-04-01 13:43:08

+1

類名稱應包含你的包名,所以你需要例如,以'com.raj.application'搜索。 'if(element.getClassName()。contains(yourPackageName)){//它是你的類}' – ernazm 2011-04-01 13:56:45