iOS开发异常处理教程

以下是两篇xcode开发如何处理异常的教程,建议一读

梗概如下:

基本上你能碰到两种崩溃的情况:SIGABRT (也叫EXC_CRASH),和EXC_BAD_ACCESS (也可能叫SIGBUSSIGSEGV)。

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。