美文网首页
NSSetUncaughtExceptionHandler处理异

NSSetUncaughtExceptionHandler处理异

作者: VincentHK | 来源:发表于2018-05-15 12:42 被阅读0次

转载https://blog.csdn.net/grozy_sun/article/details/68969541
在阅读《高性能iOS应用开发》的时候,看注释提到了NSSetUncaughtExceptionHandler这个类,简单了了解了一下。终于明白如友盟Buggly等软件异常捕获是如何实现的。

说明

利用NSSetUncaughtExceptionHandler可以用来处理异常崩溃。崩溃报告系统会用NSSetUncaughtExceptionHandler方法设置全局的异常处理器。

如果自定义NSSetUncaughtExceptionHandler监听事件,会导致第三方监听失效,需要注意。
void UncaughtExceptionHandler(NSException *exception) {
NSArray *arr = [exception callStackSymbols];
NSString *reason = [exception reason];
NSString *name = [exception name];
NSLog(@"%@\n%@\n%@",arr, reason, name);
}

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

    NSArray *arr = @[@(0), @(1)];
    NSLog(@"%@", arr[2]); //模拟越界异常
    return YES;
    }

    image

通过使用别的方法也可以激活异常:
[NSException raise:@”Crash Button Was Clicked” format:@”“];

相关文章

网友评论

      本文标题:NSSetUncaughtExceptionHandler处理异

      本文链接:https://www.haomeiwen.com/subject/evmedftx.html