异常处理

来源:互联网 发布:嵌入式linux tftp使用 编辑:程序博客网 时间:2024/06/06 02:18

如何抛出异常
抛出异常的两种方式

@throw  [NSException exceptionWithName:@"好大一个bug" reason:@"异常原因:我也不知道" userInfo:nil];

方式二

NSString *info = [NSString stringWithFormat:@"%@方法找不到",NSStringFromSelector(aSelector)];

下面这种方法是自动抛出的

[NSException raise:@"这是一个异常" format:info,nil];

03 如何捕获异常

NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);void UncaughtExceptionHandler(NSException *exception) {NSArray *arr = [exception callStackSymbols];得到当前调用栈信息NSString *reason = [exception reason];非常重要,就是崩溃的原因NSString *name = [exception name];异常类型   NSString *content = [NSString stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[callStack componentsJoinedByString:@"\n"]];把异常崩溃信息发送至开发者邮件NSMutableString *mailUrl = [NSMutableString string];[mailUrl appendString:@"mailto:test@qq.com"];[mailUrl appendString:@"?subject=程序异常崩溃,请配合发送异常报告,谢谢合作!"];[mailUrl appendFormat:@"&body=%@", content]; 打开地址NSString *mailPath = [mailUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailPath]];}
原创粉丝点击