转载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;
}
通过使用别的方法也可以激活异常:
[NSException raise:@”Crash Button Was Clicked” format:@”“];