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的限制,但是这是否正确地解决我的主要问题?