NSException异常处理
来源:互联网 发布:淘宝买水烟被警察 编辑:程序博客网 时间:2024/06/05 15:05
当我们的项目上线后,想收集用户的崩溃信息主要有两种方式,一种是借第三方平台的统计,还有一种就是自己统计,上传服务器。这里就讲讲自己使用NSException统计崩溃信息。
在main.m中
@try { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } @catch (NSException *exception) { NSLog(@"main=====%@", exception); }打印结果:
2016-04-25 17:17:41.607 crash统计[2636:2304650] main=====-[__NSArray0 stringByAppendingString:]: unrecognized selector sent to instance 0x7fa948c03630
这个可以捕获所有的崩溃信息,然后将其存在沙盒中,在下次进入APP时上传到服务器,但是在main.m中是在崩溃时捕获,而最好的方式是在崩溃前捕获。
在AppDelegate.m中的
//拦截异常void handleException(NSException *exception){ NSMutableDictionary * info = [NSMutableDictionary dictionary]; info[@"callStack"] = [exception callStackSymbols];//调用栈信息(错误来源哪个方法) info[@"name"] = [exception name];//异常名字 info[@"reason"] = [exception reason];//异常描述 // [info writeToFile:<#(nonnull NSString *)#> atomically:<#(BOOL)#>] 写入沙盒 NSLog(@"%@-----%s",exception, __func__);}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //将沙盒中的错误信息传递给服务器 //设置捕捉异常的回调 NSSetUncaughtExceptionHandler(handleException); return YES;}
打印结果:
可见在崩溃之前已经捕获到崩溃信息,然后存在沙盒中,在下次进入APP时上传服务器。
对于独立开发者,其实可以调用系统发邮件,将崩溃信息发送到自己的邮箱进行统计。
0 0
- ios NSException 异常处理
- NSException异常处理
- Objective-C - 异常处理(NSException)
- NSException
- NSError && NSException
- NSException:错误处理机制---调试中以及上架后的产品如何收集错误日志
- 异常处理+异常+处理异常+自定义异常
- NSError and NSException
- Foundation框架 - NSException类
- NSError和NSException区别
- NSException方法调用
- 被遗忘的NSException
- OC : NSException (崩溃)
- NSException 程序崩溃日志
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- JSTL核心标签库的使用
- JavaScript面向对象精要(一)
- UIViewController数据刷新
- Oracle 11g笔记——调整表空间和数据文件的大小、移动数据文件、联机重做日志文件、控制文件
- asp.net mvc中加入log4net记录错误日志
- NSException异常处理
- mysql union和union all的区别
- JavaScript面向对象精要(二)
- Android CardView 设置点击效果
- UNPv1第二章:传输层
- 双向链表的相关操作C++实现
- Elasticsearch
- GreenSock2
- 【多线程】Java线程的创建