NSSetUncaughtExceptionHandler处理异常

转载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:@”“];

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容