码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发——错误总结&异常捕捉

时间:2015-06-09 23:41:35      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

异常捕捉

 

 1 有时应用崩溃,而日志中的输出信息太少,无法定位问题,这是最头疼的事情,尤其很累的时侯,已经想不起来刚才改过什么了,这就叫做无耐。
 2 
 3 工欲善其事,必先利其器,下面的方法可以给多些信息,让你看到堆栈执行顺序,在哪里崩溃的,也就能大概给个思路,确定问题的症结。
 4 
 5 在 AppDelegate.m 类实现之前加入:
 6 
 7  
 8 
 9 void UncaughtExceptionHandler(NSException *exception) {
10     
11     // 获取异常相关信息
12     NSArray *callStackSymbols = [exception callStackSymbols];
13     NSString *callStackSymbolStr = [callStackSymbols componentsJoinedByString:@
14 ];
15     NSString *reason = [exception reason];
16     NSString *name = [exception name];
17     
18     // 获取系统当前时间
19     NSDate * date = [NSDate date];
20     NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init ];
21     [dateFormatter setDateFormat:@yyyy年MM月dd日 HH小时mm分ss秒];
22     NSString * dateStr = [dateFormatter stringFromDate:date];
23     
24     NSLog(@系统当前时间为:%@ 
25 ,dateStr);
26     NSLog(@异常名称:%@ 
27 ,name);
28     NSLog(@异常原因:%@ 
29 ,reason);
30     NSLog(@堆栈标志:%@ 
31 ,callStackSymbolStr);
32 }
33 
34  
35 
36  
37 在 AppDelegate.m 类实现的应用启动方法中加入如下语句,为系统设置异常回调函数为上面的声明,详细说明见 “iOS Foundation 框架概述文档:常量、数据类型、框架、函数、发布声明”:
38 
39 @implementation AppDelegate
40 
41 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
42     
43     NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
44     

 

 

iOS开发——错误总结&异常捕捉

标签:

原文地址:http://www.cnblogs.com/iCocos/p/4564835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!