CSDN博客

img lwqadmin

异常跟踪

发表于2004/9/14 15:41:00  605人阅读

Exception类有一个printStackTrace()方法,它能够从发生异常的方法中输出堆栈信息,默认输出位置是System.err。但是,有时候我们要把堆栈信息输出到System.err之外的其他地方,例如在出现异常时把堆栈信息输出到email,或者用一个对话框显示出来。
  printStackTrace()方法有几种不同的类型:
  · printStackTrace(),输出到标准错误流。
  · printStackTrace(PrintStream ps),输出到名为ps的PrintStream。
  · printStackTrace(PrintWriter pw),输出到名为pw的PrintWriter。
  我们可以用最后一种printStackTrace()方法把堆栈信息保存到String对象。只要在String对象中捕获了堆栈信息,我们就可以方便地在应用的任何地方使用这些信息了。下面的代码片断示范了具体的实现步骤:

 

private String getStackTraceAsString(Exception e) {
    // StringWriter将包含堆栈信息
    StringWriter stringWriter = new StringWriter();
    //必须将StringWriter封装成PrintWriter对象,
    //以满足printStackTrace的要求
    PrintWriter printWriter = new PrintWriter(stringWriter);
     //获取堆栈信息
    e.printStackTrace(printWriter);
    //转换成String,并返回该String
    StringBuffer error = stringWriter.getBuffer();
    return error.toString();
  }

 

0 0

相关博文

我的热门文章

img
取 消
img