我该如何拦截致命异常?

时间:2014-05-29 13:13:26

标签: ios ipad exception-handling

我希望在我的iPad应用程序中集成一种监视用户活动的方法,特别是发生的异常并触发应用程序停止,例如Apple的错误报告,但移动客户端。

我尝试将主要操作(main.m)封装在@try@catch块之间,但是在此之前不会抛出异常,而我无法添加此类操作在我的代码中无处不在。委托方法applicationWillTerminate都没有被调用,应用程序只是在没有任何通知的情况下被残酷地停止。

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:0)

它适用于我main.m

int main(int argc, char *argv[]) {
    @autoreleasepool { 
        int retVal = 0;
        @try {
            retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
        @catch (NSException *exception) {
            NSLog(@"Exception: %@", exception);
            [exception raise];
        }

        return retVal;    
    }
}

P.S。

另一种棘手的方式:EXC_BAD_ACCESS automatic handling

NSUncaughtExceptionHandler

的例子