0
在我的應用程序崩潰記錄服務(splunk mint)正在崩潰大時間。 我正在設置UncaughtExceptionHandler
(因爲我沒有權力通過崩潰日誌庫),以便我可以捕獲這些崩潰並防止應用程序崩潰,因爲崩潰日誌庫。如何使用這個所有崩潰捕獲的代碼只處理單一類型的崩潰
但我只想抓住這些與UncaughtExceptionHandler
特定的崩潰,而不是在應用程序中的所有崩潰。
我有這段代碼,你能告訴我如果任何異常不包含單詞splunk.mit
被捕獲,我該如何讓應用程序崩潰?
public class MyApplication extends Application
{
public void onCreate()
{
// Setup handler for uncaught exceptions.
Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread thread, Throwable e) {
// todo check if stacktrace contains `splunk.mint`
// todo let all other crashes crash the app
handleUncaughtException (thread, e);
}
});
}
public void handleUncaughtException (Thread thread, Throwable e) {
e.printStackTrace();
// todo deal with the crash somehow
}
}
PS:請問這有訣竅嗎?
Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread thread, Throwable e){
if (!Arrays.toString(e.getStackTrace()).contains("splunk.mint")) {
throw e;
}
}
});
其實我試圖測試,但Android的工作室不會編譯,因爲我還沒有抓到throw e
線。我該怎麼辦?
PS2:我通過替代throw e
與throw new RuntimeException(e);
解決了Android Studio的限制,但是這是否正確地解決我的主要問題?