打印堆栈跟踪与异常本身

tre*_*dro 0 java exception stack-trace

快速的问题.当然,堆栈跟踪会提供更多信息,但在某些情况下使用异常本身是一种不好的做法吗?就像刚刚获得"空指针异常"而不是这个巨大的转储东西?如果这没有任何意义,那么两个不同之处是:

(Exception e)
{
  print e
}

AND

(Exception e)
{
  e.printStackTrace
}
Run Code Online (Sandbox Code Playgroud)

Lui*_*oza 6

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

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