好吧,这是有史以来编程最糟糕的例子之一,但我在研究别人的问题时尝试了,发现结果有点奇怪。有什么解释吗?
public class Test {
static class Bizarre extends RuntimeException {
public void throwMe() {
throw this; // line 6
}
}
public static void main(String[] args) {
Bizarre biz = new Bizarre(); // line 12
System.out.println("Output line 1"); // line 13
biz.throwMe(); // line 14
System.out.println("Output line 2"); // line 15
}
}
结果输出:
Output line 1
Exception in thread "main" Test$Bizarre
at Test.main(Test.java:12)
为什么选择第12行?
答案 0 :(得分:9)
在初始化时创建Exception
(真正Throwable
)堆栈跟踪。您的例外是Bizarre
实例,在第12行创建。