在我的應用程序類中,我試圖趕上它發生之前關閉的力量,所以我可以記錄它,然後重新拋出它,以便Android可以處理它。我這樣做是因爲有些用戶不報告強制關閉。Rethrow UncaughtExceptionHandler異常後記錄它
我在eclipse中開發,eclipse不允許我重新拋出異常。它顯示錯誤說「未處理的異常類型Throwable:帶有try/catch的環繞聲」。我如何重新拋出異常?
public class MainApplication extends Application
{
@Override
public void onCreate()
{
super.onCreate();
try
{
//Log exception before app force closes
Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
AnalyticsUtils.getInstance(MainApplication.this).trackEvent(
"Errors", // Category
"MainActivity", // Action
"Force Close: "+ex.toString(), // Label
0); // Value
AnalyticsUtils.getInstance(MainApplication.this).dispatch();
Toast.makeText(MainApplication.this, "Snap! Something broke. Please report the Force Close so I can fix it.", Toast.LENGTH_LONG);
//rethrow the Exception so user can report it
//throw ex; //<-- **eclipse is showing an error to surround with try/catch**
}
});
} catch (Exception e)
{
e.printStackTrace();
}
}
}
嗯我認爲你是對的。我不熟悉裝飾模式,你能展示一些代碼來告訴我如何做到這一點嗎? – 2012-01-29 04:45:16
是的工作!謝謝Capn麻雀。 (注:吐司沒有顯示。) – 2012-01-29 06:07:36
這裏遲到了,但因爲我剛剛使用Capn Sparrow的解決方案,所以我應該指出吐司不會顯示,因爲在makeText調用結束時現在有.show()。這讓我經常這樣。 – AJ87uk 2012-07-20 14:22:19