私のアプリケーションクラスで、私はそれが起こる前に強制終了をキャッチしようとしています。したがって、ログに記録してからアンドロイドが処理できるように再スローできます。いくつかのユーザーは強制終了を報告しないので、私はこれを行います。ロギング後に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();
}
}
}
うーん、私はあなたが正しいと思います。私はデコレータパターンに慣れていない、私はこれを行う方法を私に示すいくつかのコードを表示することができますか? –
それはうまくいった!ありがとうCapn Sparrow。 (注:トーストは表示されません) –
私はちょうどCapn Sparrowのソリューションを使用しましたが、makeText呼び出しの最後に.show()が存在するため、トーストが表示されないことを指摘しておきます。これは私をとても頻繁にします。 – AJ87uk