iPhone开发如何捕获提交异常日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

近几个月在公司安排和我个人的要求下,接触了iPhone方面的开发,主要都是应用方面的,参与了两个iPhone项目的开发,并且已经比较至AppStore了,终于可以休息一段时间了。

  项目开发中,经常遇到一个问题。每次辛苦的发布版本给测试人员测试后,收获一推Bug,面对这些问题,有些问题还是很容易就找到的,那些很难重现的问题就让人无语了。如果不是在模拟器上,又或者我们的设备没有连接到PC上,那么如何调试我们的程序呢?如果应用已经发不到AppStore了,用户在使用过程中出现了问题,我们当然希望能够感知到这个问题,并在更新下个版本时修改和完善我们的应用。

  这就引出一个需求:捕获应用使用时出现的异常,提交至服务器或者开发者的邮箱。

  废话不多说,直接上代码。

  1、用于处理未被try...catch...捕获的异常

  void UncaughtExceptionHandler(NSException *exception) {

  // 异常的堆栈信息

  NSArray *stackArray = [exception callStackSymbols];

  // 出现异常的原因

  NSString *reason = [exception reason];

  // 异常名称

  NSString *name = [exception name];

  NSString *syserror = [NSString stringWithFormat:@"异常名称:%@\n异常原因:%@\n异常堆栈信息:%@",name, reason, stackArray];

  NSLog(@"%@", syserror);

  // 发送异常至开发者的邮箱或者发送至服务器端

  }

  2、在应用启动的地方替换系统原有的处理异常的Handler

  // 保存系统处理异常的Handler

  _uncaughtExceptionHandler = NSGetUncaughtExceptionHandler();

  // 设置处理异常的Handler

  NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

  3、在应用退出时,还原异常处理的Handler

  - (void)applicationWillTerminate:(UIApplication *)application

  {

  // 还原为系统处理异常的Handler

  NSSetUncaughtExceptionHandler(_uncaughtExceptionHandler);

  }

  这样,如果测试人员或者用户发现崩溃性的问题,我们就很容易找到原因,并进行修正。








本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/812708,如需转载请自行联系原作者
相关实践学习
日志服务之数据清洗与入湖
本教程介绍如何使用日志服务接入NGINX模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
目录
相关文章
|
21天前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
2月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
21天前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
13天前
|
开发框架 安全 Java
信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
|
2月前
|
开发工具 iOS开发
如何导出iPhone手机中app共享文件夹的文件与闪退日志的收集
如何导出iPhone手机中app共享文件夹的文件与闪退日志的收集
25 1
|
19天前
|
关系型数据库 MySQL 数据库
MySQL建表异常日志
MySQL建表异常日志
12 0
|
2月前
|
监控 Python
Python中精通异常日志记录
Python中精通异常日志记录
18 0
|
2月前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
125 0
|
2月前
|
Java
异常之道:探索Java异常处理与日志的黄金准则
异常之道:探索Java异常处理与日志的黄金准则
32 0
|
5天前
|
存储 关系型数据库 MySQL