打印错误栈信息:可以捕获具体错误信息

第一种方式:

public String getStackTraceStr(Exception e) {
ByteArrayOutputStream buf = new java.io.ByteArrayOutputStream();

e.printStackTrace(new PrintWriter(buf, true));
String exStr = buf.toString();
try {
buf.close();
} catch (IOException e1) {
e1.printStackTrace();
}
return exStr;
}

第一种方式用到了流,太占用内存资源。

第二种方式:

private static String getStackMsg(Exception e) {

StringBuffer sb = new StringBuffer();
StackTraceElement[] stackArray = e.getStackTrace();
for (int i = 0; i < stackArray.length; i++) {
StackTraceElement element = stackArray[i];
sb.append(element.toString() + "\n");
}
return sb.toString();
}

时间: 2024-10-05 21:49:22

打印错误栈信息:可以捕获具体错误信息的相关文章

C/C++捕获段错误,打印出错的具体位置(精确到哪一行)

修订:2013-02-16 其实还可以使用 glibc 的 backtrace_symbols 函数,把栈帧各返回地址里面的数字地址翻译成符号描述的 修订:2011-06-11 背景知识: · 在linux/unix中的信号处理机制,知道signal函数与sigaction的区别 · 段错误的概念,CPU中断处理的步骤,中断向量表的分类 · 知道CPU Exception分为Fault.trap和abort,了解他们的基本区别 · 段错误和浮点错误属于Fault,产生Fault时会将出错指令的地

20150430 调试分析之 根据内核报错信息PC指针分析错误

20150430 调试分析之 根据内核报错信息PC指针分析错误 2015-04-30 Lover雪儿 大家写驱动的时候不知道有没有发现,当我们驱动写错了,发生内核奔溃时,会打印一大堆的报错信息, 如果再返回我们的程序中一行一行代码的检查,既耗费时间,并且有些逻辑上的错误,我们是很难看的出来的, 那我们能不能再这一大堆的报错信息中发现问题的所在呢? 此处我们来模拟一个错误,还是沿用上一篇文章中的驱动代码err_led.c的驱动程序中的代码修改错误,当然大家用其他的驱动代码做测试也可以. 博客地址:

WCF异常信息:由于内部错误,服务器无法处理该请求

"WCF异常信息:由于内部错误,服务器无法处理该请求",考评系统实现的过程中,提示出这样的错误,你如何调试,对呀面对如此抽象含糊的提示,跟没有提示一样,表示很无语. 这其实是我们自己把错误提示给遮挡住了,我们看下面配置文件system.serviceModel节点 <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <!-- 为避免泄漏元数据信息,请在部署前

Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明

错误码        信息2420        数字语法错误2421        日期语法错误2422        字符串语法错误2423        ‘.’.‘!’.或 ‘()’的使用无效2424        不认识的名称2425        不认识的函数名称2426        表达式中的函数不可用2427        对象没有值2428        与域函数一起使用的参数无效2429        In 运算符缺少 ()2430        Between 运算符缺少

用foxmail发邮件时出现 错误信息::ssl连接错误, errorCode: 5

用foxmail发邮件时出现 错误信息::ssl连接错误, errorCode: 5 解决办法:设置--账号设置--服务器--勾掉ssl复选框

捕获JS 错误日志

最近在做项目的过程中,发现很多JS报错没有引起重视,我就想想把JS错误捕获了,然后展示在我们一个平台上 具体实现代码: window.onerror = function(message, url, lineNumber,columnNo,error) {     var data = {         'message':message,         'url':url,         'error':error.stack     };     $.ajax({         ur

保存错误日志回传服务器之回传错误“信息”

近期领导交给我个任务,即已经上线的一个android产品出现Bug,但只是个别手机出现Bug,主流手机都没事,但是我们不可能把所有出现问题的手机都搜集过来测试开发(实际上出现问题的手机都比较难拿到机型,例如:红米定制版,索尼等),因此只能想个办法:在项目中加上保存错误日志,并将错误信息回传到服务器的方法,然后通过错误日志分析Bug,因此我在参考了网上的一些解决方案后,自己修改写了两种方式:一.直接将错误信息+手机信息发送到服务器  二.将错误信息+手机信息保存到一个文件,将文件上传到服务器.不过

“知识越多越反动”这句话是错误的,我还要说培根的“知识就力量”这句话也是有时代局限的(在今天信息爆炸的时代,信息和技能永远在过时的道路上)

第一,养成并保持学习的能力.我在每一次开学典礼上都要谈一个话题:上大学是为了什么?我认为两件事情最为重要:一是掌握学习的能力,二是养成合作的习惯.掌握了学习的能力和拥有合作的习惯,才能事业顺利,缺一不成.在我看来,学习的能力不是指掌握知识和技能,而是指认知世界.理解世界的能力.我们已经知道“知识越多越反动”这句话是错误的,我还要说培根的“知识就力量”这句话也是有时代局限的.在今天信息爆炸的时代,信息和技能永远在过时的道路上.人的一生只有不断掌握并增强自身的学习能力才能不落后于时代.这也是真正的大

通过API获取统计信息时报Access denied错误处理记录

通过API获取HDFS统计信息时报Access denied错误信息,错误信息如下: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Access denied for user xusweeter. Superuser privilege is required at org.apache.hadoop.hdfs.server.namenode.FSPermiss

如何在Service中将捕获的错误写到一个文件中

1 private void LogError(Exception ex) 2 { 3 string Path = AppDomain.CurrentDomain.BaseDirectory + @"\ErrorLog.txt"; 4 FileStream file = new FileStream(Path, FileMode.OpenOrCreate); 5 StreamWriter Write = new StreamWriter(file); 6 Write.WriteLine