首页 > 代码库 > iOS开发异常处理教程
iOS开发异常处理教程
以下是两篇xcode开发如何处理异常的教程,建议一读
- part 1
- part 2
梗概如下:
基本上你能碰到两种崩溃的情况:SIGABRT
(也叫EXC_CRASH
),和EXC_BAD_ACCESS
(也可能叫SIGBUS
或SIGSEGV
)。
SIGABRT
是程序异常,容易定位,EXC_BAD_ACCESS
通常直接就把断点断在了main处,有一定的技巧来寻找原因(比如启用Zombie Objects)。
文章介绍了如何读控制台的错误日志,介绍了异常断点(Exception Breakpoint)、LLDB(GDB)、僵尸对象(Zombie Objects)等。
即便没耐心看完全文,文后也有一个简短的总结:
- 如果程序崩溃在main.m,可以考虑设置一个异常断点
- 如果仍然没有得到有用的信息,可以在LLDB键入
po $eax
命令(扩展:po [$eax class]
,po [$eax name]
,po [$eax reason]
),等于于po [$eax description]
- 如果得到
EXC_BAD_ACCESS
错误,可以启用Zombie Objects
再测试一遍,检查是否引用到了已被释放的对象 - 很多情况下异常由遗漏的或错误的代码与设计器(story或xib)的连接,这些异常通常不会在编译期发现而且不容易被检查代码时人眼发现
- 尽量把警告当错误,很多情况下错误也来自于编译期的“警告”。如果你不明白警告是怎么发生的,就尽量研究清楚
- 模拟器环境与真机是不同的,尽量连不同的真机debug
iOS开发异常处理教程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。