IOS崩溃异常的处理

原创 2015年11月18日 15:11:13

IOS崩溃异常的处理

会闪退的异常种类有:数组越界、空引用、引用未定义方法、内存空间不足等等。以下是对APP进行异常监听的处理方法:


1、在AppDelegate的didFinishLaunchingWithOptions方法中添加异常捕获监听


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


    //加上异常捕获监听,用来处理程序崩溃时的回调动作,UncaughtExceptionHandler是一个函数指针,该函数需要我们实现,可以取自己想要的名字。当程序发生异常崩溃时,该函数会得到调用

    NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);



2、在AppDelegate.m中实现UncaughtExceptionHandler方法,此处处理异常有两种方法,第一种是保存在本地文件(下次启动时可查看),第二种是将异常崩溃信息发送至开发者邮箱

#pragma mark - 崩溃异常处理方法

void UncaughtExceptionHandler( NSException *exception){

    NSArray *arr=[exception callStackSymbols];//得到当前调用栈信息

    NSString *reason=[exception reason];//获取崩溃的原因

    NSString *name=[exception name];//异常名称

    NSString *exceptionInfo=[NSString stringWithFormat:@"Exception type:%@ \n crash reason:%@ \n call stack info:%@",name,reason,arr];

    

    NSLog(@"崩溃异常打印:%@",exceptionInfo);

   

//    //异常处理方法一:将异常保存在本地文件中,下次启动的时候,可以查看

//    NSMutableArray *tmpArr=[NSMutableArray arrayWithArray:arr];

//    [tmpArr insertObject:reason atIndex:0];

//    [exceptionInfo writeToFile:[NSString stringWithFormat:@"%@/Documents/error.log",NSHomeDirectory()] atomically:YES encoding:NSUTF8StringEncoding error:nil];

    

    //异常处理方法二:将异常崩溃信息发送至开发者邮箱

    NSMutableString *mailUrl=[NSMutableString string];

    [mailUrl appendString:@"mailto:593206782@qq.com"];

    [mailUrl appendString:@"?subject=程序异常崩溃,请配合发送异常报告,谢谢合作!"];

    [mailUrl appendFormat:@"&body=%@",exceptionInfo];

    //打开地址

    NSString *mailPath=[mailUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailPath]];

  

}


iOS崩溃crash大解析

前言 iOS崩溃是让iOS开发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很重要。调试阶段是比较容易找到出问题的地方的,但是已经上线的app并分析崩溃报告就比较...

iOS崩溃 捕获异常处理(二)

iOS崩溃 捕获异常处理(二)

IOS-处理异常崩溃(摘自iPhone Tutorials)

基本上有两种类型的崩溃可能发生:SIGABRT(也称为EXC_CRASH)和EXC_BAD_ACCESS 1 异常断点 第一步 第二步 第三步 2Zombies ...

IOS-处理异常崩溃(摘自iPhone Tutorials)

基本上有两种类型的崩溃可能发生:SIGABRT(也称为EXC_CRASH)和EXC_BAD_ACCESS 1 异常断点 第一步 第二步 第三步 2Zombies 第一步 ...

iOS崩溃 捕获异常处理

iOS崩溃 捕获异常处理

iOS崩溃异常处理

这里介绍一下我

利用IOS的异常处理机制来做崩溃统计分析

前言:先简单的介绍一下IOS中对异常的一些处理 抛出异常: @throw //后面写出异常后执行的操作 利用NSException的两个类方法 + (void)raise:(NSString *)n...

IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)

iOS已发布应用中对异常信息捕获和处理  代码下载地址:http://download.csdn.net/detail/daiyelang/6740205    iOS开发中我们会遇到程序抛出异常退出...

Android中处理崩溃异常

  • 2016年08月19日 15:23
  • 9.99MB
  • 下载

Android中处理崩溃异常和记录日志

  • 2016年09月09日 10:57
  • 1.66MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS崩溃异常的处理
举报原因:
原因补充:

(最多只允许输入30个字)