2013-07-30 4 views
0

Обычно я использую обработку исключений, чтобы изящно выбрасывать исключение и обрабатывать его без сбоя приложения.Обработка ошибок, утверждений или обработки исключений

Я унаследовал некоторый код, который использует утверждения повсюду, и приложение сильно отлаживается при отладке, каждый раз, когда утверждения терпят неудачу, с ошибкой assertionfailed.

Много раз эти утверждения проверяют, что что-то не является нулевым, а если оно равно null, он сбой при завершении утверждения.

Это кажется совершенно контрпродуктивным по сравнению с выполнением if(var!=null), но я что-то упускаю? Я пропустил что-то новое в этой парадигме кода?

Мое текущее утверждение, что все assert вызовы должны быть прокомментированы, и любые ошибки, проблемы должны проверить нулевые переменные вместо

Я написал это в надежде есть фактический ответ на этот вопрос, спасибо!

+1

Утверждения используются, когда вы уверены, что некоторые условия в редких случаях происходят в производственной среде. поэтому «нулевая» проверка является наихудшим ее использованием. – Ankit

ответ

1

Утверждение - это то, что ДЕЙСТВИТЕЛЬНО НИКОГДА не должно произойти. утверждения не предназначены для проверки состояния, а для проверки сильного предположения, что вы уверены, что этого никогда не произойдет. когда вы используете assertion, вы включаете их для отладки, но никогда не должны быть в производственном коде.

Таким образом, использование утверждения для проверки нуля является наихудшей идеей, потому что в java значения null все вокруг. лучше использовать if(object == null).

Смежные вопросы