iOS项目异常捕捉提示及处理方案。


iOS 异常捕捉、说明。

在项目调试过程中,经常会遇到闪退,怎么比较友好的收集这些错误、异常信息呢? 看了网上的许多处理方式,其实大概意思都差不多,可以本地存储异常日志,待合适时候再发送,也可以通过邮件的形式,将异常发给开发者。
这篇文章将会把一些接口统一一下,并提供 断言, 错误的具体位置(类名及行数)、所有异常报告内容、及异常报告文件路径接口。 并统一展示 异常日志 。


使用说明 :




第一步 :将Demo中的 UncaughtExceptionHandler 文件夹及其中的文件直接拖入到项目当中, 并将 #import "DKDebug.h"  和 #import "WBUncaughtExceptionHandler.h" 导入到项目的 pch 文件中 即可。

第二步 :在 WBUncaughtExceptionHandler.h  中,配置 SENT_TO_MAIL 宏字符串,这是你要接收异常日志的邮箱

说明: 之后项目出现闪退异常,会弹出提示框,并且将所有的异常错误日志写入缓存文件中,用户选择发送给开发者,可以将当前的异常信息发送邮件给开发者。  如果要获取所有的异常日志,也有提供所有异常信息字符串,及异常文件的路径,后面会再说明。



关键类、接口、属性说明 :

 WBUncaughtExceptionHandler.h 中 。

//
//  WBUncaughtExceptionHandler.h
//  ExceptionHandler
//
//  Created by YuTianLong on 16/7/27.
//  Copyright © 2016年 http://blog.csdn.net/yutianlong9306/. All rights reserved.
//

#import <Foundation/Foundation.h>

#define SENT_TO_MAIL                            (@"ReceiveMail@gmail.com")         //配置接收异常邮件的邮箱号
#define GetUncaughtExceptionHandler()           ([WBUncaughtExceptionHandler sharedInstance])

@interface WBUncaughtExceptionHandler : NSObject {
    BOOL isExit;
}

@property (nonatomic, copy) NSString *wrongLocation;            //断言产生的错误的具体位置,类名,行数
@property (nonatomic, readonly) NSString *allExceptionReport;   //读取所有异常报告
@property (nonatomic, readonly) NSString *logFileUrl;           //获取错误日志文件本地路径

+ (instancetype)sharedInstance;

@end

/**
 *  AppDelegate 调用安装异常监测
 */
void InstallUncaughtExceptionHandler(void);


SENT_TO_MAIL //配置接收异常信息的邮箱帐户。

isExit //判断项目是否退出,默认NO。

wrongLocation //如果是否断言DKAssert产生的异常,则该属性就不为空。(记录类名及第几行错误)

allExceptionReport//读取异常日志文件中的所有异常信息。(可用户读取异常信息 发送后台)

logFileUrl //异常日志文件 的路径。(可用于统一展示异常文件,读取路径,文件类型.TXT)

InstallUncaughtExceptionHandler() //在 didFinishLaunchingWithOptions 中调用。



注意 :  使用断言DKAssert调试的话,用真机调试。

Demo 效果:


https://img-my.csdn.net/uploads/201607/27/1469609223_5146.gif






Demo 下载地址 :





  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值