iPhone编程中如何通过异常处理来处理SIGKILL、SIGABRT、Signal-0异常

问题描述 投票:0回答:2

当引发

SIGKILL
SIGABRT
Signal-0
异常时,我必须捕获异常。

请建议如何通过异常处理来处理上述信号。

您能否建议我任何示例代码来执行此操作?

提前致谢。

iphone objective-c exception
2个回答
3
投票

您可以通过在应用程序委托中注册 NSUncaughtExceptionHandler 来捕获大多数未处理的异常。

同样,您可以使用 sigactionsignal

捕获大部分信号

正如您在上面两个链接中看到的,您无法捕获 SIGKILL 和 SIGSTOP 类型的信号。

尝试分析您的代码,找出导致这些信号的任何可能原因。


1
投票

具有java和C#背景的开发人员必然会去iOS中进行异常处理。 Apple 有一些非常好的 API 来解决已知错误,但程序应该没有异常(我知道这很困难)。 Sigabrt 通常在您过度释放对象时发生,而 SIGKILL 通常在系统由于内存不足而终止您的应用程序时发生。所以,我建议你阅读苹果的内存管理指南。另外,您可以通过此链接此。 。 Apple 为异常处理定义了一个类 - NSException

© www.soinside.com 2019 - 2024. All rights reserved.