Все это зависит немного от того, что Вы собираетесь сделать с Ошибкой, как только Вы поймали его. В целом фиксация Ошибок, вероятно, не должна рассматриваться как часть Вашего "нормального" потока исключения. Если Вы ловите один, Вы не должны думать о "продолжении, как будто ничего не произошло", потому что JVM (и различные библиотеки) будет использовать Ошибки в качестве способа сигнализировать, что "что-то действительно серьезное произошло, и мы должны закрыться как можно скорее". В целом, лучше слушать их, когда они говорят Вам, что конец почти.
Другая проблема - то, что восстанавливаемость или не от Ошибки может зависеть от конкретной виртуальной машины, которая является чем-то, чем Вы можете или не управлять.
Тем не менее существует несколько угловых случаев, где это безопасно и/или желательно зафиксировать Ошибки или по крайней мере определенные подклассы:
, Таким образом, нижняя строка: при ловле Throwable/Error, а не Исключения это должно быть четко определенный случай, где Вы знаете о "выполнении чего-то специального" .
Редактирование: Возможно это очевидно, но я забыл говорить, что на практике, JVM не могла бы на самом деле вызвать Ваш пункт выгоды на Ошибку. Я определенно видел, что Горячая точка многословно заминает попытки поймать определенный OutOfMemoryErrors и NoClassDefFoundError.
Удаление будет предпринято только для нормального завершения работы виртуальной машины, как определено в Спецификации языка Java
№. если возможно, проверьте файл при следующем запуске.