iOS APP中捕获异常

在入口类方法中调用函数捕捉程序异常行为:代码如下

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   //   //捕获异常的方法为C函数
   NSSetUncaughtExceptionHandler(&getException);

   return YES;
}

捕获异常的方法,如下所示:

//C函数
void getException(NSException * exception)
{
/*需要记录错误原因,并且返回到服务器
 1,知道设备版本
 2,崩溃日期*/
//设备类型 iPhone/iPhone6/iPhone6 Plus/iPad......
NSString * model=[[UIDevice currentDevice]model];
NSLog(@"model--%@",model);
//设备版本
NSString * version=[[UIDevice currentDevice]systemVersion];
NSLog(@"version--%@",version);
//异常出现日期
NSDate * date=[NSDate date];
//崩溃的详细内容(名称,原因,信息,栈内存地址,详细集合)
NSLog(@"%@",exception.name);//异常名称
NSLog(@"%@",exception.reason);//异常原因
NSLog(@"%@",exception.userInfo);//异常信息
NSLog(@"%@",exception.callStackReturnAddresses);//异常的栈内存地址
NSLog(@"%@",exception.callStackSymbols);//异常详细集合

//获取到异常以后,可以立即发送至服务器,考虑到节省用户流量的问题,也可以先保存在本地,然后定期发送给服务器

//记录到本地
//    @"123" writeToFile: atomically:<#(BOOL)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>
//从本地获取,发送至服务器
}

你可能感兴趣的:(iOS APP中捕获异常)