美文网首页
iOS 捕获异常

iOS 捕获异常

作者: Zorin | 来源:发表于2020-07-16 16:31 被阅读0次
  1. 首先创建一个捕获异常的函数: 自定义编写捕获到异常后的逻辑处理
void UncaughtExceptionHandler(NSException *exception){
    
    // 异常日志获取
    NSArray  *excpArr = [exception callStackSymbols];
    NSString *reason = [exception reason];
    NSString *name = [exception name];
    
    NSString *excpCnt = [NSString stringWithFormat:@"exceptionType: %@ \n reason: %@ \n stackSymbols: %@",name,reason,excpArr];
    
    // 日常日志保存(可以将此功能单独提炼到一个方法中)
    NSArray  *dirArr  = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *dirPath = dirArr[0];
    NSString *logDir = [dirPath stringByAppendingString:@"/CrashLog"];
    
    BOOL isExistLogDir = YES;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:logDir]) {
        isExistLogDir = [fileManager createDirectoryAtPath:logDir withIntermediateDirectories:YES attributes:nil error:nil];
    }
    
    if (isExistLogDir) {
        // 此处可扩展
        NSString *logPath = [logDir stringByAppendingString:@"/crashLog.txt"];
        [excpCnt writeToFile:logPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    }
}
  1. 在适当位置添加异常捕获的监听:比如didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

    return YES;
}

相关文章

  • iOS Crash 流程化0:概览

    Ref:iOS Crash 捕获及堆栈符号化思路剖析 iOS Crash 流程化:概览崩溃捕获Mach 异常捕获U...

  • 异常捕获

    异常捕获 有两种 IOS系统的异常NSSetUncaughtExceptionHandler(&exception...

  • iOS异常捕获

    参考的是这篇文章:iOS异常捕获

  • iOS异常捕获

    转载自:向晨宇的技术博客-iOS异常捕获 文章目录前言一. 系统Crash二. 处理signal1. 下面是一些信...

  • iOS 异常捕获

    iOS崩溃情况 一般是由 Mach异常或 Objective-C 异常(NSException)引起的。我们可以针...

  • iOS 捕获异常

    产品测试和上线后往往会遇到一些bug,开发者需要定位到异常的代码这个时候就要捕获异常。 可以通过写一个类Crash...

  • iOS异常捕获

    文章目录 一. 系统Crash 二. 处理signal 下面是一些信号说明 关键点注意 三. 实战 四. Cras...

  • iOS异常捕获

    https://www.dazhuanlan.com/2020/01/06/5e12aaabf0437/https...

  • iOS 捕获异常

    首先创建一个捕获异常的函数: 自定义编写捕获到异常后的逻辑处理 在适当位置添加异常捕获的监听:比如didFinis...

  • iOS异常捕获

    前言 今天在ios高级群237305299,有朋友问到iOS的异常捕捉的问题,这一块以前也没有研究过,趁此机会研究...

网友评论

      本文标题:iOS 捕获异常

      本文链接:https://www.haomeiwen.com/subject/bpzphktx.html