获取调用方法名称的Exception的堆栈跟踪是否可靠?

时间:2015-10-10 07:50:33

标签: java

我知道stacktraces可以用来检索当前执行的方法,如下所示:

Thread.currentThread().getStackTrace()[what you want]

然而,并非每个JVM都提供此堆栈跟踪,因此获取方法名称的方式非常不可靠。 无论如何......例外呢?我需要记录调用方法名称,为了提供一些代码维护,我想避免像这样写下这个名字:

public void myMethod(){
  ...

}catch(anException ex){
      log.error("myMethod failed!");
}

但更像是:

}catch(anException ex){
      log.error("{} failed!", ex.getStackTrace()[0].getMethodName()); //0 should be my method, the caller
}

这可靠吗?我认为,至少在例外情况下,应该期望JVM提供所述堆栈跟踪......

0 个答案:

没有答案