`
Tian.Wang
  • 浏览: 72600 次
  • 性别: 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_用源代码片段装饰堆栈跟踪.zip

    标题"Java_用源代码片段装饰堆栈跟踪.zip"暗示了这个压缩包可能包含了一些示例或工具,用于在堆栈跟踪中添加额外的信息,比如源代码片段,以便于调试。描述没有提供具体细节,但我们可以从一般实践出发,探讨如何在...

    Java exception_java_

    从异常获取信息包括访问异常的类型(`e.getClass()`)、消息(`e.getMessage()`)和堆栈跟踪(`e.getStackTrace()`)。堆栈跟踪是一个数组,包含了异常发生时的代码行号和方法调用顺序,这对于调试非常有帮助。 ...

    打印JAVA堆栈的方法

    另一种常见的打印堆栈的方法是通过故意抛出一个异常,然后捕获这个异常并打印其堆栈跟踪信息。这种方式简单粗暴但非常有效,特别适用于快速定位问题时。 ```java public static void printStackTrace() { try { ...

    java中Exception的细节

    在源码层面,`Exception`类及其子类都有构造函数来初始化异常信息,包括异常消息和堆栈跟踪。堆栈跟踪是异常发生时记录的调用堆栈,它显示了导致异常的代码路径,对于调试非常有用。 Java还提供了一些工具,如`java...

    java exception

    每个异常对象都包含了异常发生时的相关信息,如异常类型、错误消息以及堆栈跟踪(StackTrace),这有助于开发者定位问题的根源。 异常的层次结构中,`Exception`类下有许多子类,如`NullPointerException`、`...

    Java 实例 - 获取异常的堆栈信息源代码-详细教程.zip

    `StackTraceElement`类表示堆栈跟踪中的单个元素,包含类名、方法名、行号和源文件名等信息。可以使用这些信息来定位到出错的具体代码行。 5. **打印堆栈信息** 通常,我们会将堆栈信息打印到控制台以进行调试,...

    Java Exception Handling 内容.ppt

    `printStackTrace`直接打印异常及其发生时的堆栈跟踪,`getStackTrace`返回堆栈跟踪的数组,而`getMessage`返回异常的描述信息。 15.10 声明新异常类型 开发者可以创建自定义异常类来表示特定的错误条件,它们通常...

    java 除0发生的算术异常(ArithmeticException)

    当程序执行到这样的代码行时,如果不捕获这个异常,程序会立即终止,并显示一个堆栈跟踪,帮助开发者定位问题所在。 **Java中的除法运算:** 在Java中,有两种除法运算符:`/`和`%`。前者表示浮点除法(如果操作数...

    Java Exception 捕获和显示实例详解

    在Java的堆栈跟踪中,"Caused by:"关键字后面的信息通常表示异常的根源。然而,这个信息并不总是在堆栈跟踪的第一行,因此简单的基于行数的检索可能无法准确地找到关键信息。 解析堆栈跟踪的一种方法是使用正则...

    Java_Programming_Exception_Example_code.rar_advanced java_java p

    ` 这种方式保留了原始异常的信息,包括堆栈跟踪,这对于调试非常有用。 2. 包装成新的异常:`throw new AnotherException("New message", e);` 这种方式创建了一个新的异常,并将原始异常作为新异常的起因(cause)...

    详解Java 打印堆栈的几种方法

    在这个方法中,我们创建了一个`Throwable`对象,然后通过`getStackTrace()`方法获取当前线程的堆栈跟踪元素数组。`StackTraceElement`对象包含了类名、文件名、行号和方法名等信息,我们逐个打印出来,以形成堆栈...

    解析Java中所有错误和异常的父类java.lang.Throwable

    4. `fillInStackTrace()`:这个方法用于填充堆栈跟踪信息,当异常实例化时,如果没有显式调用此方法,Java虚拟机会自动填充。 除了基本的异常处理,Java还提供了一些预定义的异常类,如 `IOException`, `...

    axis2 InvocationTargetException

    1. **查看堆栈跟踪**:首先,需要查看详细的堆栈跟踪来定位问题的根源。堆栈跟踪会提供异常发生的精确位置以及可能的错误原因。 2. **检查服务实现**:检查服务的实现代码,确保所有方法都正确处理了可能出现的异常...

    struts 中exception的友好处理:

    在Struts框架中,异常处理是一项至关重要的任务,它能够确保程序在遇到错误时仍能提供友好的用户反馈,而不是展示那些无意义的堆栈跟踪信息。这篇博客将深入探讨如何在Struts中优雅地处理异常。 首先,了解Struts的...

    java throw抛出异常实例二

    // 可能还包括堆栈跟踪信息打印 e.printStackTrace(); } } } ``` 在这个例子中,`throw new IllegalArgumentException("Invalid argument")`创建了一个新的`IllegalArgumentException`对象,并用"Invalid ...

    有效处理JAVA异常三原则

    首先,Java中的异常是由Throwable类的层次结构所定义的,其中包含了Error、Exception以及RuntimeException。Error类代表严重的错误,通常由Java运行时系统抛出,程序不应试图捕获这些错误。Exception是程序中可以...

    Java异常处理.md

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

    java异常处理例题代码.pdf

    - 异常对象的printStackTrace()方法能够打印异常的堆栈跟踪信息。 - 使用异常消息(通过.getMessage()方法)可以获得有关异常原因的详细信息。 这些知识点对于理解和使用Java异常处理机制至关重要,它们帮助程序员...

    java 异常类处理

    IDE如IntelliJ IDEA和Eclipse提供了强大的调试工具,可以设置断点,单步执行代码,查看变量值,以及堆栈跟踪信息,帮助定位异常发生的具体位置。同时,日志记录工具如Log4j、SLF4J等,能记录异常信息,便于事后分析...

    JAVA错误收集

    而“工具”可能指的是开发者用来诊断和修复错误的各种工具,如Java的异常堆栈跟踪、JDK自带的JConsole、VisualVM,或者是第三方的日志记录工具如Log4j、SLF4J等。 在文件列表中,"ErrorCollection.docx"很可能是一...

Global site tag (gtag.js) - Google Analytics