如何在iPhone应用程序中执行应用程序级异常处理

Ash*_*i K 3 iphone exception-handling

我正在开发一个应用程序来进行一些图像处理.如果出现问题,应用程序崩溃了.我想避免这种情况.当应用程序的任何阶段发生任何异常时,我想处理它并给用户一个友好的消息.在C#中,windows form应用程序可以完成,但对于iPhone我是新的,因此不知道如何实现它.

任何身体都可以帮助我.

谢谢

Ashwani

dre*_*ewh 5

您可以实现符合此签名的未捕获异常处理程序:

typedef volatile void NSUncaughtExceptionHandler(NSException *exception);
Run Code Online (Sandbox Code Playgroud)

通过调用该NSSetUncaughtExceptionHandler函数.从那里你可以弹出任何你想要通知用户应用程序正在关闭的UI(我们实际上收集一个堆栈跟踪并调用mailto:url将崩溃发送给我们 - 这已经过时了,因为iTunes 8.2是自动的崩溃报告).

编辑:要清楚,您的应用程序在您的处理程序完成后终止,没有办法解决它.我不确定为什么你会希望你的应用程序在此时继续执行,因为它很可能处于不一致的状态.让它崩溃而不是潜在地破坏数据或更糟糕的情况几乎总是更好.来自Apple文档:

设置顶级错误处理函数,您可以在程序终止之前执行最后一分钟的日志记录 .