提供对Throwable
对象的简单引用。我想找出抛出它的原始类。我不再在这个班级里面,所以我所拥有的是一个Throwable
对象从某个地方传入。
答案 0 :(得分:7)
使用GetStackTrace
的{{1}}属性检索Throwable
。
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/StackTraceElement.html
getClassName()
这将打印所有涉及的课程。
答案 1 :(得分:1)
您是否在Throwable对象上尝试过GetStackTrace()?
答案 2 :(得分:1)
使用GetStackTrace( )检索班级名称。
提供对打印的堆栈跟踪信息的编程访问 的printStackTrace()。
答案 3 :(得分:0)
堆栈跟踪将显示异常,但异常也可能有原因,依此类推。
原始类很可能是最后一个原因中的第一个堆栈跟踪元素,因此您可能希望根据需要更改收集逻辑。
以下是按出现顺序收集所有相关课程的方法。
Exception e = getTheException();
Set<String> classNames = new LinkedHashSet<>();
Throwable cause = e;
while (cause != null) {
Stream.of(cause.getStackTrace()).forEach(element-> classNames.add(element.getClassName());
cause = cause.getCause();
}