例外 - 立即投掷和捕获

时间:2016-03-31 12:50:15

标签: java exception exception-handling

抛出异常并直接捕获它只是为了打印错误是否有意义?

if(...){

} else {
   try{
      throw new Exception();
   } catch (Exception e){
      e.printStackTrace();
   }
}

2 个答案:

答案 0 :(得分:3)

没有必要扔掉,你可以简单地打电话:

new Exception().printStackTrace();

甚至更容易:

Thread.dumpStack();

您还可以将当前线程的堆栈跟踪作为数组获取:

StackTraceElement[] trace = Thread.currentThread().getStackTrace();

如果你想做更详细的事情,比如在运行时检查堆栈(例如,获取调用方法的名称)。

答案 1 :(得分:1)

我认为只有当您明确要将Exception发送到带有LOGGER的日志文件(进入catch块)或者以特定方式注册它时,它才有用。