dn_*_*n_c 3 java android exception-handling
在我的应用程序中,我想在遇到崩溃的情况下将日志发送到远程服务器.我已经添加了try-catch块并且在catch中我将日志发送到服务器.我想知道我应该抓住的所有例外情况.每次崩溃都需要日志,以便我可以修复它.赶上所有异常会是一个好习惯吗?
提前致谢.
小智 6
以下是我从其他优秀答案中汲取的建议摘要列表:
捕获所有未处理的异常.
创建一个ExceptionHandler实现java.lang.Thread.UncaughtExceptionHandler.您可以使用此类来自定义和记录错误.
把这个:你们每个班级的Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(this));内部OnCreate()方法(之后super())Activity.
有关详细信息,请参阅Android异常处理最佳实践中的这个优秀答案.
将try/catch包含在外部/外部运行的所有代码中.(例如 - 使用第三方组件的代码)
围绕您知道的所有代码包含try/catch,在某些条件下可能会失败
在顶层使用try/catch,因为所有异常都会冒泡到顶层.因此,在内部函数中,如果需要,可以考虑使用throw异常.然后,在顶层,捕获特定的异常并正确地在catch块中对异常类型进行排序.(从这个伟大的答案中提到:如何使用try catch进行异常处理是最佳实践
对于UI,即使发生错误(如果错误是由于没有互联网连接),您也应该通过提供应用程序的"有限功能"版本来提供"持续可用性".
向用户报告的过度错误不是一个好主意.
持久性错误消息很糟糕.通过消息通知用户并让用户关闭/删除它.
参考1 | 参考2 | 参考3 | 进一步阅读1 | 进一步阅读2 | 进一步阅读3
要使Android库远程记录未处理的异常,您可以看一下:android-remote-stacktrace.
添加INTERNET权限:uses-permission android:name ="android.permission.INTERNET"
在OnCreate您的活动或服务的方法中,放置'ExceptionHandler.register(this," http://your.domain/path ");'
| 归档时间: |
|
| 查看次数: |
6395 次 |
| 最近记录: |