大家都知道,下面一段代码可以直接输出异常的堆栈跟踪信息:
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
分享到:
相关推荐
Throwable包含了其线程创建时线程执行堆栈的快照,可以通过printStackTrace()等方法获取堆栈跟踪数据等信息。 Exception:这是Throwable的一种形式,用于指示合理的应用程序想要捕获的条件。Exception及其子类可以...
- 当代码执行过程中出现如除数为零的`ArithmeticException`等错误时,Java会立即转至相应的catch块进行异常处理,如输出错误信息并打印堆栈跟踪。 2. **finally块的使用**: - 不论try块中的代码是否抛出异常,...
异常矿工该项目包含 jar 文件:exception_miner.jar,其中包含用于从 Github 和 Google 代码问题中提取 Java 堆栈跟踪的类。 名为 br.ufrn.exminer.util.ExceptionStacktraceExtractor 的主类的 java 文档也包含在...
在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。有三个原则可以...
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...
堆栈跟踪 Exception in thread "main" Exception executing consequence for rule "extended" in fr.cea.test: java.lang.NullPointerException at org.drools.core.runtime.rule.impl....
本文介绍了当线程从应用程序中消失时会引起混乱,并且在很多情况下,线程消失时没有(堆栈)跟踪。像对付许多风险一样,防止线程泄漏的最佳方法是预防和检测相结合;注意有可能抛出RuntimeException的地方(如调用...
首步我们一般在程序中先处理我们完成异常处理的类,完成异常处理的功能,因为可能除数为0是会出现异常,我们查找java.lang包中各个Exception类,发现RuntimeException类集合中的ArithmeticException可以处理运算异常...
堆栈跟踪 由于 H2 中的Lob not found异常, H2LobIssueTest.testConcurrentLobModification失败。 在特拉维斯: Caused by: org.hibernate.exception.GenericJDBCException: could not load an entity: [de....
下面是设置 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 ...