`
Tian.Wang
  • 浏览: 71121 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

如何获得java中的Exception的堆栈跟踪信息

阅读更多

大家都知道,下面一段代码可以直接输出异常的堆栈跟踪信息:

try

{

...

}

catch(Exception e)

{

    e.printStackTrace();

}

可是,事实上在我们开发程序的过程中除非是做调试,一般均采用log4j做为错误信息输出的工具。而Exception本身并未提供将堆栈跟踪信息以字符串形式返回的函数。

/**
*
*/
package net.goldensharp;

import java.io.PrintWriter;
import java.io.StringWriter;

/**
* @author Wesley
*
*/
public class ExceptionUtil
{

/**
  * 以字符串形式返回异常堆栈信息
  * @param e
  * @return 异常堆栈信息字符串
  */
public static String getStackTrace(Exception e)
{
  StringWriter writer = new StringWriter();
  e.printStackTrace(new PrintWriter(writer,true));
 
  return writer.toString();
}

/**
  * @param args
  */
public static void main(String[] args)
{
  try
  {
   throw new Exception("自定义异常");
  }
  catch(Exception ex)
  {
   System.out.println(getStackTrace(ex));
  }

}

}

文正摘自:http://iwesley.blog.hexun.com/9965836_d.html
分享到:
评论

相关推荐

    Java异常架构详细介绍与说明(值得珍藏)

    Throwable包含了其线程创建时线程执行堆栈的快照,可以通过printStackTrace()等方法获取堆栈跟踪数据等信息。 Exception:这是Throwable的一种形式,用于指示合理的应用程序想要捕获的条件。Exception及其子类可以...

    Java异常处理.md

    - 当代码执行过程中出现如除数为零的`ArithmeticException`等错误时,Java会立即转至相应的catch块进行异常处理,如输出错误信息并打印堆栈跟踪。 2. **finally块的使用**: - 不论try块中的代码是否抛出异常,...

    exceptionminer:用于从 GitHub 和 Google Code 问题中挖掘堆栈跟踪信息的工具(将作为开源项目添加)。 该工具基于 GHTorrent Dataset (http

    异常矿工该项目包含 jar 文件:exception_miner.jar,其中包含用于从 Github 和 Google 代码问题中提取 Java 堆栈跟踪的类。 名为 br.ufrn.exminer.util.ExceptionStacktraceExtractor 的主类的 java 文档也包含在...

    有效处理Java异常三原则

     在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。有三个原则可以...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    DROOLS_NPE_rule_extended

    堆栈跟踪 Exception in thread "main" Exception executing consequence for rule "extended" in fr.cea.test: java.lang.NullPointerException at org.drools.core.runtime.rule.impl....

    Java理论与实践:嗨,我的线程到哪里去了?

    本文介绍了当线程从应用程序中消失时会引起混乱,并且在很多情况下,线程消失时没有(堆栈)跟踪。像对付许多风险一样,防止线程泄漏的最佳方法是预防和检测相结合;注意有可能抛出RuntimeException的地方(如调用...

    JSTL详细标签库介绍

    首步我们一般在程序中先处理我们完成异常处理的类,完成异常处理的功能,因为可能除数为0是会出现异常,我们查找java.lang包中各个Exception类,发现RuntimeException类集合中的ArithmeticException可以处理运算异常...

    h2-lob-issue:H2 1.4“找不到Lob”问题的可重现单元测试

    堆栈跟踪 由于 H2 中的Lob not found异常, H2LobIssueTest.testConcurrentLobModification失败。 在特拉维斯: Caused by: org.hibernate.exception.GenericJDBCException: could not load an entity: [de....

    amazon-sqlite-fail:当区域设置为韩国时,SQLite 数据库在 Fire OS 上失败

    下面是设置 Locale.KOREA 时异常的示例堆栈跟踪。 03-20 11:46:17.923 24360-24360/com.example.rennt.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start ...

Global site tag (gtag.js) - Google Analytics