标签:
异常捕捉
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
标签:
原文地址:http://www.cnblogs.com/iCocos/p/4564835.html