Подтвердить что ты не робот

Является ли Groovy хорошей идеей для производственного кода, в отличие от Java assert?

В Java известно, что использование ключевого слова assert обычно плохое, поскольку его поведение зависит от среды выполнения (по умолчанию он ничего не делает, если только -enableassertion не передается в среду java).

Является ли Groovy утверждением другим? Всегда ли он выполняется в производственном коде, и рекомендуется ли его использовать в производственном коде? (В Java вы бы использовали нечто вроде Preconditions)

Из моих тестов на работоспособность кажется, что по умолчанию assert отлично работает без каких-либо флагов и что он на самом деле более мощный, чем ключевое слово Java (см. Power Assert) - Я просто ищу официальный/полный ответ, в отличие от моего анекдотического.

4b9b3361

Ответ 1

Groovy assert всегда выполняется в производственном коде, и я рекомендовал использовать его в процессе производства. Я вижу следующее примерно как эквивалентное, но версия Groovy более компактна

Groovy

assert file.exists(), "$file does not exist"

Java

if (!file.exists()) {
    throw new SomeRuntimeException(file + " does not exist");
}