Когда ловить java.lang.Error? - PullRequest
       57

Когда ловить java.lang.Error?

108 голосов
/ 09 декабря 2008

В каких ситуациях нужно поймать java.lang.Error в приложении?

Ответы [ 16 ]

3 голосов
/ 27 ноября 2013

довольно удобно ловить java.lang.AssertionError в тестовой среде ...

3 голосов
/ 14 марта 2013

В приложении для Android я ловлю java.lang.VerifyError . Библиотека, которую я использую, не будет работать на устройствах со старой версией ОС, и код библиотеки выдаст такую ​​ошибку. Конечно, я мог бы избежать ошибки, проверив версию ОС во время выполнения, но:

  • Самый старый поддерживаемый SDK может измениться в будущем для конкретной библиотеки
  • Блок ошибок try-catch является частью большого резервного механизма. Некоторые конкретные устройства, хотя и должны поддерживать библиотеку, генерируют исключения. Я ловлю VerifyError и все исключения, чтобы использовать запасное решение.
2 голосов
/ 05 мая 2014

В идеале мы не должны обрабатывать / отлавливать ошибки. Но могут быть случаи, когда нам нужно это сделать, основываясь на требованиях фреймворка или приложения. Скажем, у меня есть демон XML Parser, который реализует DOM Parser , который потребляет больше памяти. Если существует такое требование, как поток анализатора, он не должен быть прерван, когда получает OutOfMemoryError , вместо этого он должен обработать его и отправить сообщение / почту администратору приложения / фреймворка.

1 голос
/ 23 апреля 2013

Ошибка, когда JVM больше не работает должным образом или находится на грани. Если вы поймаете ошибку, нет гарантии, что блок catch будет работать, и тем более, что он будет работать до конца.

Это также будет зависеть от работающего компьютера, текущего состояния памяти, поэтому нет возможности протестировать, попробовать и сделать все возможное. У вас будет только неприятный результат.

Вы также понизите удобочитаемость своего кода.

1 голос
/ 20 августа 2012

Может быть целесообразно отследить ошибку в модульных тестах, которые проверяют утверждение. Если кто-то отключает утверждения или иным образом удаляет утверждение, которое вы хотели бы знать

1 голос
/ 26 января 2011

в идеале мы никогда не должны отлавливать Error в нашем Java-приложении, так как это ненормальное условие. Приложение будет в ненормальном состоянии и может привести к поломке или получению какого-либо серьезного неправильного результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...