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

异常捕捉

 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     
时间: 2025-01-02 14:12:26

iOS开发——错误总结&异常捕捉的相关文章

php错误及异常捕捉

原文:php错误及异常捕捉 在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的. 所以引用以下几中函数. a)   set_error_handler 一般用于捕捉  E_NOTICE .E_USER_ERROR.E_USER_WARNING.E_USER_NOTICE 不能捕捉: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR and E_COMPILE_WARNING. 一般与trigger_

iOS开发拓展篇—UIDynamic(捕捉行为)

iOS开发拓展篇—UIDynamic(捕捉行为) 一.简介 可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动 UISnapBehavior的初始化 - (instancetype)initWithItem:(id <UIDynamicItem>)item snapToPoint:(CGPoint)point; UISnapBehavior常见属性 @property (nonatomic, assign) CGFloat damping; 用于减幅.减震(取值范围是0.0

IOS开发的哪些异常之异常断点

从Android开发的异常报错到IOS的异常闪退,经历了不一样的处理过程.对于IOS的异常报错刚開始总是非常茫然,永远仅仅告诉你有异常.然后就跳到main.m文件,却不曾我告诉她在那出现.真是吊人胃口.直到我再也无法容忍这个看着异常提示而无法定位的情况,我发现了Exception Breakpoint.下面来自官方的文档: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcnlhbl92YW4=/font/5a6L5L2T/fontsize/400/fi

IOS开发错误

After modifying system headers, please delete the module cache at '/Users/XXX/Library/Developer/Xcode/DerivedData/XXXX/2ZMDAUJMMHSDC' 解决的方法:前往 '/Users/XXX/Library/Developer/Xcode/DerivedData/XXX/2ZMDAUJMMHSDC 这个目录,删除其目录中的内容.然后执行app,没问题了,注意不是删除 2NEVAP

iOS开发——错误总结篇&amp;开发中常见错误和警告总结(三十三)

开发中常见错误和警告总结(三十三) 动画冲突 错误: Unbalanced calls to begin/end appearance transitions for <uivewcontroller> 解决方法1:去掉动画 解决方法2:监听当前view的动画是否完成 解决方法就是,加一个BOOL型的变量,检查是否在做动画. 1 2 if (transiting) { 3 return; 4 } 5 transiting = YES; 6 [self transitionFromViewCon

iOS开发错误集锦

1.添加第三方库时,需要注意使用环境 duplicate symbol _llvm.embedded.module in: /Users/dengw/360Cloud/xcode_code/application/OnceNote/Pods/ShareSDK3/libraries/extends/WeChatSDK/libWeChatSDK.a(MTAEvent.o) /Users/dengw/360Cloud/xcode_code/application/OnceNote/Pods/Share

iOS开发错误日志

错误提示:fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWebView.h' has been modified since the precompiled header

文顶顶iOS开发博客链接整理及部分项目源代码下载

文顶顶iOS开发博客链接整理及部分项目源代码下载 网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作.有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获. 在此也向@文顶顶 表示严重感谢! 由于文顶顶博客博文繁多,每次找文章需要频繁的翻页,

IOS开发之--异常处理--使用try 和 catch 来捕获错误。

一个搞java的老板问我会不会try catch  我说不会 学这么久也没听周围朋友用这个 因为苹果控制台本来就可以打印异常 特此研究一下. 1.try catch:  是捕获异常代码段   特点:对代码的实时监控  占用大量资源 2.ios中很少用到try 和catch 简单的来说,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,但是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误.而异常被推荐用来处理不可恢复的错误. 原因有几