【发布时间】:2013-08-28 17:37:07
【问题描述】:
我想在记录自己的错误后故意使我的应用程序崩溃。 Handler在Application.onCreate()中注册:
// set global exception handler
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, final Throwable ex) {
// unregister
Thread.setDefaultUncaughtExceptionHandler(null);
// do report ...
// crash app -does not work, app is frozen
if (ex instanceof RuntimeException)
throw (RuntimeException) ex;
throw new RuntimeException("Re-throw", ex);
}
但是,我的应用程序冻结而不是崩溃并出现对话框。如果我没有注册处理程序,如何使应用程序崩溃?
【问题讨论】:
-
看来注销应该在匿名类之外
-
您期望发生什么?当你“重新抛出”时,你已经消除了任何默认的异常处理,你应该期望你的应用程序在那个时候严重崩溃。
-
@chrylis 这正是我想要的 - 但它不会崩溃,它会冻结,甚至 ANR 都没有显示。
-
@Flo 我不确定您所看到的是不是崩溃。您仍然可以使用主页按钮退出应用程序吗?如果是这样,只是冻结正是我所期望的一个严重崩溃的 Android 进程的行为方式。 LogCat 是怎么说的?
标签: java android error-handling crash