java - 打印堆栈跟踪与异常本身

标签 java exception stack-trace

快速提问。当然,堆栈跟踪提供了更多信息,但在某些情况下使用异常本身是一种不好的做法吗?就像只是得到“空指针异常”而不是这个巨大的转储内容?如果这没有任何意义,那么两个区别将是:

(Exception e)
{
  print e
}

AND

(Exception e)
{
  e.printStackTrace
}

最佳答案

我会说在生产中不要使用它们。您应该以其他方式处理异常,例如记录异常或将堆栈跟踪保存在某处以便稍后查看,并且可能向用户显示一条友好的消息,说明应用程序或方法失败。

但是,如果您只是询问使用哪种方法,我会说后者更好,因为 System.out.println(e) 将调用 Throwable#toString > 只提供了此异常的消息,也许你无法得到问题的真正原因。

关于java - 打印堆栈跟踪与异常本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33586700/

相关文章:

java - 请求 Java ThreadInfo 的堆栈跟踪?

Java:从 8 位 wav 文件中检索字节数组并将其规范化为 -1.0 到 1.0

java - 没有 servlet 的 CXF 客户端

exception - 使用Log4Net记录Exception.Data

java错误处理: how to check for numberformatexceptions

C++ Builder 异常 - StackTrace 为空?

java - 命令模式与反射

java - 尝试检索字段值时出现 NoSuchFieldException

java - 致命异常 NoClassDefFoundError

groovy - 在编译Groovy类时遇到奇怪的stacktrace