Какие ошибки и исключения Java могут (не) быть выброшены «пустыми операторами»?
Который подкласс (ы)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();
а такжеJ();
?
Или скорее,который Подклассы Throwable являютсягарантированный не появляться между этими утверждениями?
Те, кого я знаю до сих пор этоInternalError
,OutOfMemoryError
,StackOverflowError
иUnknownError
.