崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式。

1.异常处理

可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly。对一些我们不想他崩溃的地方,可以采取这种方式去处理。但要注意的是,通过这种处理,使用的第三方崩溃将捕捉不到异常信息,不会上报。

    @try {
<#Code that can potentially throw an exception#>
} @catch (NSException *exception) {
<#Handle an exception thrown in the @try block#>
} @finally {
<#Code that gets executed whether or not an exception is thrown#>
}

2.异常信息打印与拦截

在开发过程中,我们想自己捕捉异常处理,那么,可以通过最简单的一种方式处理,直接在main.m中try catch,在catch中将数据先存在本地,隔一段时间或者APP进入后台时,上报给服务器。

main.m

    @try {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
} @catch (NSException *exception) {
NSLog(@"main------%@", [exception callStackSymbols]);
}

但这种方式,个人感觉并不好。实际上,我们可以在AppDelegate.m中处理,在didFinishLaunchingWithOptions中设置异常回调,回调里面,处理相关的异常。

流程是:发生异常-->handleException-->main.h

void handleException(NSException *exception)
{
NSMutableDictionary *info = [NSMutableDictionary dictionary];
info[@"callStack"] = [exception callStackSymbols]; // 调用栈信息(错误来源于哪个方法)
info[@"name"] = [exception name]; // 异常名字
info[@"reason"] = [exception reason]; // 异常描述(报错理由)
} - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch. // 将沙盒中的错误信息传递给服务器 // 设置捕捉异常的回调
NSSetUncaughtExceptionHandler(handleException); return YES;
}

上面的方法都是对异常的一些分析以处理,实际开发中,我们一般都是使用第三方库记录和分析BUG。

崩溃分析统计

* 1.友盟

*  2.腾讯bugly

* 3.Flurry

* 4.Crashlytics

最新文章

  1. makefile小例子
  2. 使用 Google Guava 美化你的 Java 代码
  3. SecureCRT 终端仿真程序 v7.0.0.326 中文绿色便携破解版
  4. windows oid 利用SNMP获得主机信息(转)
  5. 消息摘要算法-HMAC算法
  6. POJ 1721 CARDS(置换群)
  7. C#实现的内存分页机制的一个实例
  8. Linux学习之查找命令find
  9. spring多个数据源配置
  10. 网站启用gzip压缩
  11. Java 中基本类型和字符串之间的转换
  12. UVA-10714 Ants---蚂蚁模拟
  13. mysql进阶(十二)常见错误汇总
  14. Leetcode_141_Linked List Cycle
  15. canvas实现黑客帝国矩形阵
  16. day 06 元组、字典、集合的定义及其方法
  17. HTTP 04 web 服务器
  18. HDU 3117 Fibonacci Numbers(矩阵)
  19. chmod修改权限
  20. 【内核】内核链表使用说明,list.h注释

热门文章

  1. String和datetime在SQL中和在C#中相互转换方法总结
  2. Vue SSR 配合Java的Javascript引擎j2v8实现服务端渲染2创建Vue2+webpack4项目
  3. 优化网站设计(九):减少DNS查找的次数
  4. 查询执行成本高(查询访问表数据行数多)而导致实例 CPU 使用率高是 MySQL 非常常见的问题
  5. CHARACTER SET
  6. iOS-原生纯代码约束总结(二)之 AutoLayout
  7. Boost 常用的库
  8. cxgridchart饼状图
  9. web.xml中 /和/*的区别
  10. python摸爬滚打之day06----小数据池、编码解码