【发布时间】:2011-02-03 08:38:05
【问题描述】:
我正在通过一个套接字程序。其中,printStackTrace 在 catch 块中的 IOException 对象上被调用。printStackTrace() 究竟做了什么?
catch(IOException ioe)
{
ioe.printStackTrace();
}
我不知道它的目的。它是干什么用的?
【问题讨论】:
-
现代 IDE 中最强大的功能之一是能够查找给定 Java 方法的文档(称为 javadoc)。在 Eclipse 中,当光标放在 printStackTrace 方法名称上时,它是 Shift-F2。
-
听起来您是 Java 新手。这里有一些东西要读:today.java.net/article/2006/04/04/…
-
您还可以阅读 printStackTrace() 的代码,以准确了解它的作用以及它是如何做到的。
-
我经常在 catch 块中看到这种模式:
e.printStackTrace(); System.exit(1);在这里,我想问与 OP 相同的问题,但以不同的方式:这究竟是什么目的?抛出异常时,JRE 不会自动打印堆栈跟踪并退出吗?也就是说,这里并没有太多的“异常处理”,对吧?? -
它通常也是 very bad idea,因为它抑制了异常 - 不幸的是,它是 Eclipse 和其他 IDE 通常自动建议作为 catch 块的主体,所以它被使用 far i> 比应有的频率更高。
标签: java exception-handling printstacktrace