【发布时间】:2015-02-25 01:36:30
【问题描述】:
java.lang.Throwable 的哪个子类可能会被空语句抛出?
“空语句”一词是指“无”、“分号”和“分号”:
// ....
A(); B(); C();
try {
// nothing
} catch (java.lang.Throwable e) {
// which Throwable subclass might we see?
}
D(); E(); F();
try {
; // semi-colon
} catch (java.lang.Throwable e) {
// which Throwable subclass might we see?
}
G(); H(); I();
try {
; ; ;; ;;;;; ; ; ;;; ;; ;; ;; ;; ; ;; ; ;; // ... semi-colons
} catch (java.lang.Throwable e) {
// which Throwable subclass might we see?
}
J(); K(); L();
// ....
哪些 Throwable 子类可以在A(); 和B(); 之间或C(); 和D(); 之间或F(); 和G(); 之间或I(); 和@ 之间抛出987654336@?
或者更确切地说,哪些 Throwable 子类保证 不出现在这些语句之间?
The ones I know so far 是 InternalError、OutOfMemoryError、StackOverflowError 和 UnknownError。
【问题讨论】:
-
你检查得到的字节码了吗?
-
@MaartenBodewes-owlstead,您可以将问题解读为“哪些 Java 错误和异常可能(不)在 个字节码之间抛出?”它甚至不是
null,它是“无”。 -
呃,除了关键的
Errors 我没看到
标签: java operating-system jvm virtual-machine jls