iOS处理异常时,有两种, 一种是对于系统崩溃而引起的程序异常退出,可以通过NSSetUncaughtExceptionHandler机制捕获; 另一种就是处理信号异常,有多种信号类型,在wiki中有比较详细的介绍:zh.wikipedia.org/wiki/Unix%E…
常用的几种如下所示:
SIGSEGV(分段故障)
访问无效的内存地址。 该地址存在,但是您的程序无法访问该地址。
SIGBUS(总线错误)
访问无效的内存地址。 该地址不存在,或者对齐方式无效。 总线发生错误时,进程接收到一个SIGBUS信号。举例来说,存储器访问对齐或者或不存在对应的物理地址都会产生SIGBUS信号
SIGFPE(浮点异常)
无效的算术运算。 尽管有名称,但可以与整数运算有关。
SIGPIPE
管道破损。 当一个进程试图写入一个没有连接到另一端进程的管道时,SIGPIPE信号会被发送到该进程。
SIGILL
非法的处理器指令。
SIGTRAP
调试器相关
SIGABRT
SIGABRT 和 SIGIOT 信号能让程序异常终止(abort)。 该信号通常是由进程自身调用 [C标准函数库]"C++标准库") 的 abort()
函数来触发, 但它也可以像其它信号一样由外部发送给进程。