一.拋出異常的2種方式
1.
@throw [NSException exceptionWithName:@"BUG" reason:@"沒有找到" userInfo:nil];
SEL selector = @selector(run:andEat:);
NSString *info = [NSString stringWithFormat:@"%@方法找不到",NSStringFromSelector(selector)]
[NSException raise:@"這是個(gè)bug" format:info,nil];
二.攔截異常的方式
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
void UncaughtExceptionHandler(NSException *exception) {
NSArray *arr = [exception callStackSymbols];//得到當(dāng)前調(diào)用棧的信息
NSString *reason = [exception reason];//崩潰原因
NSString *name = [exception name];//異常類型
NSLog(@"-------------%@\n-------------%@\n-------------%@",arr, reason, name);
//可以將 異常信息 保存到沙盒中廊酣,等再次啟動(dòng)的是有况脆,將異常信息 上傳到自己的服務(wù)器
}