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

简介:

近几个月在公司安排和我个人的要求下,接触了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模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
2月前
|
数据库
什么是计算机软件开发领域的 verbose 代码和日志
什么是计算机软件开发领域的 verbose 代码和日志
31 0
|
3月前
|
调度
kettle开发篇-写日志
kettle开发篇-写日志
82 0
|
2月前
|
供应链 Java 测试技术
开发Java应用时如何用好Log
开发Java应用时如何用好Log
70 3
|
5月前
|
监控 Java
Springboot开发系统记录操作日志
Springboot开发系统记录操作日志
94 3
|
5月前
|
消息中间件 搜索推荐 关系型数据库
淘东电商项目(51) -全局异常日志采集(ELK+Kafka)
淘东电商项目(51) -全局异常日志采集(ELK+Kafka)
54 0
|
5月前
|
应用服务中间件
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
|
6月前
|
Java 项目管理 Spring
【log4j异常】Spring boot项目启动报警告信息,log4j:WARN Please initialize the log4j system properly.
【log4j异常】Spring boot项目启动报警告信息,log4j:WARN Please initialize the log4j system properly.
86 0
|
7月前
|
人工智能 运维 监控
在日常开发工作中,日志数据该如何利用?
在日常开发工作中,日志数据是一个宝贵的资源,它可以提供关于应用程序运行状态、错误报告、性能指标和用户行为等方面的重要信息。正确地利用和分析日志数据可以帮助开发人员更好地理解应用程序的运行情况,快速定位和解决问题,改进应用程序的性能,并为业务决策提供有力支持。尤其是在现代科技发展的背景下,日志数据作为一种重要的信息资源,对于运维工作具有极大的价值。然而,如何充分利用日志数据,并将其应用于运维和开发工作中,仍然是许多企业和运维和开发人员关注的问题。那么本文就来分享一下在日常开发中关于日志数据的利用方面的探讨。
127 1
在日常开发工作中,日志数据该如何利用?
|
编解码 iOS开发
iphone 开发的基本入门知识
iphone 开发的基本入门知识
147 0