printStackTrace

转载 2016年06月01日 16:04:10
- (void)printStackTrace:(NSException *)e//要写入log文件的信息
{
    NSString *stack = [[e userInfo] objectForKey:NSStackTraceKey];
    NSMutableArray *args = [NSMutableArray arrayWithCapacity:20];
    if (stack) {
        NSTask *ls = [[NSTask alloc] init];
        NSString *pid = [[NSNumber numberWithInt:[[NSProcessInfo processInfo] processIdentifier]] stringValue];
        [args addObject:@"-p"];//-p
        [args addObject:pid];
        [args addObjectsFromArray:[stack componentsSeparatedByString:@"  "]];
        // Note: function addresses are separated by double spaces, not a single space.
        [ls setLaunchPath:@"/usr/bin/atos"];//xcrun atos
        [ls setArguments:args];
       // [ls launch];
        NSPipe *pipe;
        pipe = [NSPipe pipe];
        [ls setStandardOutput: pipe];
        NSFileHandle *file;
        file = [pipe fileHandleForReading];
        [ls launch];
        NSData *data;
        data = [file readDataToEndOfFile];
        NSString *string;
        string = [[NSString alloc] initWithData: data
                                       encoding: NSUTF8StringEncoding];
        NSString *strFormat = [NSString stringWithFormat:@"\n\n*************************exception begin\nexception time: %@\n%@\n*************************exception end\n\n",[NSDate date] ,string];
        DDLogCError(strFormat);

    } else {
        DDLogCError(@"No stack trace available.");
    }
}

将printStackTrace()的信息以字符串形式保存

记录一下。 Exception的printStackTrace来自于Tthrowable,android下只支持两种方式 printStackTrace(PrintStream err)  ...
  • flxue
  • flxue
  • 2014年03月23日 14:56
  • 1207

异常抛出e.printStackTrace();工作原理

异常抛出e.printStackTrace();如何实现的底层源码解析
  • jiaxianggege215
  • jiaxianggege215
  • 2017年10月12日 18:43
  • 670

安卓e.printStackTrace()打印方法

找了很多地方,都说这句错误信息在Logcat中打印,可是根本找不到啊。 终于找到一个方法,好用!知道错误是什么真是太幸福了~ Log.i("debug",Log.getStackT...
  • srping123
  • srping123
  • 2016年06月21日 16:30
  • 364

java:printStackTrace()方法

printStackTrace()方法一般与抛出异常搭配使用,效果是打印出异常位置。 try{           .....   }    catch(Exception e)   {  ...
  • include_ice
  • include_ice
  • 2018年01月03日 17:50
  • 103

Android中用LogCat输出e.printStackTrace

之前用MyEclipse写网页的时候,抛出异常,直接用e.printStackTrace便可以直接输出错误发生函数的调用堆栈信息。 结果到写Android的时候就不好用了,虽然代码也不报错,但是看不到...
  • haelang
  • haelang
  • 2015年02月03日 10:19
  • 2779

java 中的e.printStackTrace()方法

在java 基础课上学到异常的时候,课本上的try……catch语句里的e.printStackTrace()完全不懂,上网搜了一下资料和查阅API,把自己对这个的一点了解写出来。    当我们写的...
  • Gean_Ma
  • Gean_Ma
  • 2015年09月30日 21:50
  • 6268

java异常分析;剖析printStackTrace和fillInStackTrace

Java异常的栈轨迹(Stack Trace)     捕获到异常时,往往需要进行一些处理。比较简单直接的方式就是打印异常栈轨迹Stack Trace。说起栈轨迹,可能很多人和我...
  • tianyazaiheruan
  • tianyazaiheruan
  • 2014年01月17日 15:47
  • 7226

getStackTrace和printStackTrace的区别

getStackTrace和printStackTrace的区别 在JAVA中收到程序报错,将堆栈信息打印出来是一个好习惯,但是在catch到exception之后,发现有两个方法都和堆栈信息有关,一...
  • liqinglin06
  • liqinglin06
  • 2017年01月13日 12:43
  • 3014

在Android中用e.printStackTrace()

Is it a bad idea to use printStackTrace() in Android Exceptions? up vote35d...
  • ly890700
  • ly890700
  • 2017年02月04日 11:56
  • 588

重构获取异常栈信息--printStackTrace

MyStackTrace: /** * * @author wumingkun * @version 1.0.0 * @Description */ package com.demo....
  • wobendiankun
  • wobendiankun
  • 2014年08月08日 20:34
  • 936
收藏助手
不良信息举报
您举报文章:printStackTrace
举报原因:
原因补充:

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