如何在Cocoa应用程序中记录所有未处理的异常并保存应用程序不会崩溃

时间:2015-10-27 17:29:31

标签: objective-c cocoa

没有人喜欢应用程序崩溃等等。我需要记录可能导致崩溃的所有错误,以便稍后我可以将它们推送到服务器上,以使应用程序更加健壮。

Q1。是否可以处理未处理的异常。像全局异常处理之类的东西?

Q2。如果应用程序崩溃,那么是否可以至少使用行号和文件名记录错误以识别错误?

我的研究

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    NSSetUncaughtExceptionHandler(&onUncaughtException);

   ///raising error on purpose in order to check
   [NSException raise:@"Invalid foo value" format:@"foo of %d is invalid", 1];
}

void onUncaughtException(NSException *exception)
{
    NSArray *stack = [exception callStackReturnAddresses];
    NSLog(@"Stack trace: %@", stack);
}

这不起作用。当我提出异常时,应用程序崩溃但异常没有被记录。

非常感谢您的关注以及您可以提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

使用现有的免费且强大的解决方案,例如Crashlytics。它非常棒且易于使用!