Я хочу спросить, какой улов блок будет называться первой, в случае заявления что-то вродеПриоритет между OutOfMemoryError и Exception
try {
...some statement...
} catch (Exception ex) {
System.out.println("out of memory exception");
} catch (OutOfMemoryError error) {
System.out.println("out of memory error");
}
здесь утверждение вызывает OutOfMemoryError
. Я проверил Order of catching exceptions in Java
Это что-то другое, вы не можете предсказать, что произойдет RunTimeException
, если код работает без проблем.
Исключения и ошибки ортогональны (они имеют общий супертип, но один не является супертипом другого). Исключение попадает, если генерируется исключение, ошибка возникает при ошибке. –
В случае низкой памяти блок catch OutOfMemoryError будет выполнен с крахом приложения –
@EJP Ваши дубликаты относятся только к Исключениям, этот вопрос несколько отличается (Исключение против ошибки). (Да, возможно, это все еще дубликат в другом месте;), но не этот) –