objective-c – 如何防止EXC_BAD_ACCESS崩溃应用程序?
有没有办法防止EXC_BAD_ACCESS崩溃的应用程序,像@try .. @ catch你可以正常处理异常.
更新: 当尝试取消引用无效指针时,代码崩溃.这是一个第三方库,它与外部硬件接口,所以我无法在本地调试.我试图阻止它崩溃并输出数据到我的应用程序调试控制台. 解决方法
在ObjC中,try / catch特别优雅地处理异常.您仍然会泄漏内存并使系统处于未定义的状态.除了罕见的例外,期望是你只是捕捉,所以你可以在崩溃之前记录一些事情.总而言之,您不应该在程序的任何地方使用@catch,而应该在程序的顶层.有一些特殊情况,有限的使用例外可能是适当的,但在ObjC中很少见.有关更多信息,请参阅
Exception Programming Guide.特别从
ObjC ARC documentation:
EXC_BAD_ACCESS也是如此.您可以用信号处理程序来捕获它,目的是记录一些信息,然后完成您的崩溃.要做一个很好的工具,请参阅PLCrashReporter.正确编写这样的处理程序是非常困难的,所以我强烈建议使用现有的框架.如果您错误地抓到EXC_BAD_ACCESS,您可以很容易地陷入用户电池的死锁. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |