Файл проверки удален на выходе JVM

Все это зависит немного от того, что Вы собираетесь сделать с Ошибкой, как только Вы поймали его. В целом фиксация Ошибок, вероятно, не должна рассматриваться как часть Вашего "нормального" потока исключения. Если Вы ловите один, Вы не должны думать о "продолжении, как будто ничего не произошло", потому что JVM (и различные библиотеки) будет использовать Ошибки в качестве способа сигнализировать, что "что-то действительно серьезное произошло, и мы должны закрыться как можно скорее". В целом, лучше слушать их, когда они говорят Вам, что конец почти.

Другая проблема - то, что восстанавливаемость или не от Ошибки может зависеть от конкретной виртуальной машины, которая является чем-то, чем Вы можете или не управлять.

Тем не менее существует несколько угловых случаев, где это безопасно и/или желательно зафиксировать Ошибки или по крайней мере определенные подклассы:

  • существуют случаи, где Вы действительно хотите остановить нормальный ход потока: например, если Вы находитесь в Сервлете, Вы не могли бы хотеть, чтобы обработчик исключений бегуна Сервлета по умолчанию объявил миру, что у Вас был OutOfMemoryError, можно ли восстановиться с него.
  • Иногда, Ошибка будет брошена в случаи, где JVM может чисто восстановиться с причины ошибки. Например, если OutOfMemoryError происходит при попытке выделить массив в Горячей точке, по крайней мере, кажется, что можно безопасно восстановиться с этого. (Существуют, конечно, другие случаи, где OutOfMemoryError мог быть брошен, где не безопасно попытаться уложить на.)

, Таким образом, нижняя строка: при ловле Throwable/Error, а не Исключения это должно быть четко определенный случай, где Вы знаете о "выполнении чего-то специального" .

Редактирование: Возможно это очевидно, но я забыл говорить, что на практике, JVM не могла бы на самом деле вызвать Ваш пункт выгоды на Ошибку. Я определенно видел, что Горячая точка многословно заминает попытки поймать определенный OutOfMemoryErrors и NoClassDefFoundError.

6
задан OMG Ponies 15 September 2009 в 01:58
поделиться

1 ответ

Удаление будет предпринято только для нормального завершения работы виртуальной машины, как определено в Спецификации языка Java

№. если возможно, проверьте файл при следующем запуске.

5
ответ дан 9 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: