Является ли Groovy хорошей идеей для производственного кода, в отличие от Java assert?
В Java известно, что использование ключевого слова assert
обычно плохое, поскольку его поведение зависит от среды выполнения (по умолчанию он ничего не делает, если только -enableassertion не передается в среду java).
Является ли Groovy утверждением другим? Всегда ли он выполняется в производственном коде, и рекомендуется ли его использовать в производственном коде? (В Java вы бы использовали нечто вроде Preconditions)
Из моих тестов на работоспособность кажется, что по умолчанию assert
отлично работает без каких-либо флагов и что он на самом деле более мощный, чем ключевое слово Java (см. Power Assert) - Я просто ищу официальный/полный ответ, в отличие от моего анекдотического.
Ответы
Ответ 1
Groovy assert всегда выполняется в производственном коде, и я рекомендовал использовать его в процессе производства. Я вижу следующее примерно как эквивалентное, но версия Groovy более компактна
Groovy
assert file.exists(), "$file does not exist"
Java
if (!file.exists()) {
throw new SomeRuntimeException(file + " does not exist");
}