如果我的应用程序崩溃了,它会挂起几秒钟,然后Android告诉我该应用程序崩溃了,需要关闭。所以我当时想用通用的方式捕获应用程序中的所有异常:
try {
// ...
} catch(Exception e) {
// ...
}
并做一个新的Activity
解释,说明应用程序立即崩溃(并且还使用户有机会发送包含错误详细信息的邮件),而不是由于Android而造成了延迟。是否有更好的方法来实现这一目标?
更新: 我使用的是启用了ART的Nexus
5,但我没有注意到我以前遇到的崩溃(我最初所说的“挂起”)是延迟的。我认为既然所有内容都是本机代码,那么崩溃会立即发生,并且会获取所有崩溃信息。也许Nexus
5很快就可以了:)不管怎么说,这可能不会在将来的Android版本中引起担心(假设ART将成为Android L中的默认运行时)。
在这里,检查链接以供参考。
在这里,您创建一个类 ExceptionHandler that implements java.lang.Thread.UncaughtExceptionHandler
..
在本课程中,您将进行一些节省生命的工作,例如创建stacktrace和准备上载错误报告等。
现在是重要的部分,
即如何捕获该异常。虽然很简单。在您的重写onCreate
方法中调用super方法之后,在每个Activity中复制以下代码行。
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
您的活动可能看起来像这样……
public class ForceClose extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
setContentView(R.layout.main);
}
}
希望这可以帮助…
并创建一个新的,解释应用程序立即崩溃(并给用户发送包含错误详细信息的邮件的机会),而不是由于Android造成的延迟。有没有更好的方法来实现这一点,或者这是不鼓励的? 更新:我使用的Nexus 5启用了ART功能,我没有注意到应用程序崩溃时的延迟(我最初说的“挂起”)。我想既然现在一切都是本机代码,崩溃就会立即发生,同时得到所有的崩溃信息。也许Nexus5只是速度很快:)不管怎样,这在未来的And
问题内容: 几天前我才开始尝试使用node.js。我意识到只要程序中有未处理的异常,Node就会终止。这与我所见过的普通服务器容器不同,在普通服务器容器中,当发生未处理的异常时,只有工作线程死亡,并且容器仍然能够接收请求。这引起了一些问题: 是唯一有效的预防方法吗? 在执行异步过程期间也会捕获未处理的异常吗? 是否存在已经构建的模块(例如发送电子邮件或写入文件),在未捕获的异常的情况下可以利用该模
本文向大家介绍详解Spring MVC/Boot 统一异常处理最佳实践,包括了详解Spring MVC/Boot 统一异常处理最佳实践的使用技巧和注意事项,需要的朋友参考一下 前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是一件棘手的事情, 对于很多人来说, 可能对异常处理有以下几个问题: 什么时候需要捕获(try-catch)异常, 什么时候需要抛出(throws)异常到上层. 在
在我的应用程序里。我正试图使用Kotlin Coroutines发送网络请求。我分析了一些情况下的响应和抛出异常。下面是代码: 此拦截异常。 logcat中的此异常消息 06-03 17:18:01.012 237 96-24010/ru.mtsbank.dbosme e/androidruntime:致命异常:OkHttp调度程序流程:ru.mtsbank.dbosme,pid:23796 ja
我有一个超时执行任务的方法。我使用ExecutorServer.submit()获取一个Future对象,然后调用future.get()并超时。这很好,但是我的问题是处理我的任务可能抛出的检查异常的最好方法。下面的代码工作正常,并且保留了被检查的异常,但是如果方法签名中被检查的异常的列表改变了,它看起来非常笨拙并且容易出错。 关于如何解决这个问题的任何建议?我需要以Java 5为目标,但我也很好
我有一个rest服务,它将抛出一个异常,我想知道什么将是最好的方式来处理这一点。 我想知道这是rest服务中处理异常的正确方式吗? 我在用泽西。