在保持我同事的代码甚至是自称是高级开发人员的人的同时,我经常看到以下代码:
try
{
//do something
}
catch
{
//Do nothing
}
Run Code Online (Sandbox Code Playgroud)
或者有时他们将日志信息写入日志文件,如下面的try catch块
try
{
//do some work
}
catch(Exception exception)
{
WriteException2LogFile(exception);
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道他们所做的是最佳做法吗?这让我感到困惑,因为在我看来,用户应该知道系统会发生什么.
请给我一些建议.
如果我的应用程序崩溃,它会挂起几秒钟才会被Android告知应用程序崩溃并需要关闭.所以我想用一般的方法在我的应用程序中捕获所有异常:
try {
// ...
} catch(Exception e) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
并创建一个新的Activity解释应用程序立即崩溃(并且还让用户有机会发送带有错误详细信息的邮件),而不是因为Android而导致延迟.是否有更好的方法来实现这一点,或者这是否沮丧?
更新:我正在使用支持ART的Nexus 5,我没有注意到我曾经遇到的应用程序崩溃的延迟(我最初谈论的"悬挂").我认为,因为现在一切都是本机代码,崩溃会立即发生,同时获取所有崩溃信息.也许Nexus 5只是快速:)无论如何,这可能不会成为未来Android版本的担忧(鉴于ART将成为Android L中的默认运行时).