捕获异常

//捕获异常

NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

oid UncaughtExceptionHandler(NSException *exception) {

/**

*  获取异常崩溃信息

*/

NSArray *callStack = [exception callStackSymbols];

NSString *reason = [exception reason];

NSString *name = [exception name];

NSString *content = [NSString stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[callStack componentsJoinedByString:@"\n"]];

//记录日志

NSString *exceptionPath = [APP_TMPPATH stringByAppendingPathComponent:[NSString stringWithFormat:@"%.0f.txt",[[NSDate date] timeIntervalSince1970] * 1000]];

if ([[NSFileManager defaultManager] fileExistsAtPath:exceptionPath]) {;

[[NSFileManager defaultManager] createFileAtPath:exceptionPath contents:nil attributes:nil];

}

[content writeToFile:exceptionPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

//提示框

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Exception" message:content delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];

[alert show];

/**

*  把异常崩溃信息发送至开发者邮件

*/

NSMutableString *mailUrl = [NSMutableString string];

[mailUrl appendString:@"272176062@qq.com"];

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

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

// 打开地址

NSString *mailPath = [mailUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容