一.抛出异常的2种方式
1.
@throw [NSException exceptionWithName:@"BUG" reason:@"没有找到" userInfo:nil];
SEL selector = @selector(run:andEat:);
NSString *info = [NSString stringWithFormat:@"%@方法找不到",NSStringFromSelector(selector)]
[NSException raise:@"这是个bug" format:info,nil];
二.拦截异常的方式
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
void UncaughtExceptionHandler(NSException *exception) {
NSArray *arr = [exception callStackSymbols];//得到当前调用栈的信息
NSString *reason = [exception reason];//崩溃原因
NSString *name = [exception name];//异常类型
NSLog(@"-------------%@\n-------------%@\n-------------%@",arr, reason, name);
//可以将 异常信息 保存到沙盒中,等再次启动的是有,将异常信息 上传到自己的服务器
}