iOS 异常处理,将bug信息发送到开发者邮箱
来源:互联网 发布:移动4g网络怎么开通 编辑:程序博客网 时间:2024/05/18 01:20
1.iOS
在程序的开发中我们难免会遇到崩溃的问题。然后在用户体验的时候,我们如何来防止崩溃的发生呢,并将我们的崩溃原因发送给开发者来处理它。
来看一个例子
NSString *str = @"523"; arr = @[@"sdad", @"dwada", @"ffwwra"]; [str substringFromIndex:111];
程序这样写的时候是绝对会崩溃的。我们如果想它不要崩溃,那么应该怎么做呢。
@try { NSString *str = @"523"; arr = @[@"sdad", @"dwada", @"ffwwra"]; [str substringFromIndex:111]; } @catch (NSException *exception) { NSLog(@"%s %@", __FUNCTION__, exception); } @finally { //如何来对待这个异常处理 NSLog(@"tryTwo - 我一定会执行"); }
我们可以使用@try{}@catch(){}@finally来处理,这样程序在运行的时候就不会崩溃了。而是跑到@finnally这里边来处理异常然后在@catch里边来打印出崩溃原因
怎么样来实现发送给开发者邮件呢?
在iOS中发送邮件是很简单的。
封装来如下方法
//// CRASHBUG.h// try处理异常//// Created by 黄权浩 on 15-1-24.// Copyright (c) 2015年 黄权浩. All rights reserved.//#import <Foundation/Foundation.h>@interface CRASHBUG : NSObject+ (void)sendBug:(NSString *)bug interface:(NSException *)interfaceinfo;@end
//// CRASHBUG.m// try处理异常//// Created by 黄权浩 on 15-1-24.// Copyright (c) 2015年 黄权浩. All rights reserved.//#import "CRASHBUG.h"#import "AppDelegate.h"@implementation CRASHBUG+ (void)sendBug:(NSString *)bug interface:(NSException *)interfaceinfo{ NSTimeInterval time = [[NSDate date] timeIntervalSince1970]; long long int date = (long long int)time; NSDate *dd = [NSDate dateWithTimeIntervalSince1970:date]; NSString *crashLogInfo = [NSString stringWithFormat:@"exception type : %@ \n crash reason : %@ \n call stack time : %@", interfaceinfo, bug, dd]; NSString *urlStr = [NSString stringWithFormat:@"mailto://xxxxxxxxx@xx.com?subject=bug report&body=Thank you for your cooperation!""Error Details:%@",crashLogInfo]; NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; [[UIApplication sharedApplication] openURL:url];}@end然后这么来使用
//// ViewController.m// try处理异常//// Created by 黄权浩 on 15-1-24.// Copyright (c) 2015年 黄权浩. All rights reserved.//#import "ViewController.h"#import "CRASHBUG.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. @try { NSString *str = @"523"; [str substringFromIndex:111]; } @catch (NSException *exception) { NSLog(@"%s %@", __FUNCTION__, exception); /** * 把异常崩溃信息发送至开发者邮件 */ [CRASHBUG sendBug:@"字符串的类型转化" interface:exception]; } @finally { //如何来对待这个异常处理 NSLog(@"tryTwo - 我一定会执行"); }}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
这样在崩溃的时候就能将邮件发送到开发者邮箱了
0 0
- iOS 异常处理,将bug信息发送到开发者邮箱
- 将ios程序运行中的异常发送到指定邮箱
- Java发送邮件(将系统的异常信息发送到邮箱中)
- 发送信息到邮箱里
- 网站异常发送异常代码到邮箱
- 将ip发送到指定邮箱
- Log4Net将错误日志发送到邮箱
- Android将日志信息自动发送到指定的邮箱中 邮件的内容以附件形式发送
- Android将日志信息自动发送到指定的邮箱中 邮件的内容以附件形式发送
- Android将日志信息自动发送到指定的邮箱中 邮件的内容以附件形式发送
- ios记录日志和崩溃日志,并将日志文件发送到指定的邮箱
- 20120808ping脚本输出异常信息时进行报警,将信息发送到手机
- 发送邮箱信息
- QQ邮箱发送信息
- JAVA邮箱发送信息
- mysql备份脚本完成后且发送信息到邮箱
- go爬虫:抓取股票实时股份信息发送到邮箱
- toread:将网页一键发送到邮箱的服务
- 关于eclipse安装gralde插件出现的安装不上问题
- JavaScript的应用在什么地方?
- 【开源】OSharp框架解说系列(4):架构分层及IoC
- 解决Extjs4 Store load方法传中文参数出现乱码问题
- 【算法导论】动态规划之“最优二叉搜索树”
- iOS 异常处理,将bug信息发送到开发者邮箱
- 和大神们学习每天一题(leetcode)-Excel Sheet Column Title
- UVALive 6650 Falling Ants
- C++虚拟继承
- 系统信息书包SYS
- Linux 汇编器:对比 GAS 和 NASM
- 高进口坚果洪湖里可
- EditText的常用属性
- JS判断输入日期的正确性