#java #assert
#java #утверждать
Вопрос:
public void foo()
{
assert false; /* Line 5 */
assert true; /* Line 6 */
}
Что здесь делает assert? Я знаком с утверждением assertion
Комментарии:
1. Как вы можете быть «знакомы с assertion statement» и не знать, что это делает? Это являются утверждениями. Я не понимаю.
Ответ №1:
С помощью этого ключевого слова мы утверждаем, что определенное условие истинно в этот момент. Если это действительно верно во время выполнения, приложение продолжается, в противном случае оно выдаст AssertionError
.
Ваш код должен выдавать эту ошибку в строке 5.
Обратите внимание, что утверждения по умолчанию отключены — вы должны запустить приложение с -ea
опцией («включить утверждения»).
Дальнейшее чтение: Программирование с утверждениями
Ответ №2:
Да, это ключевое слово, которое выдает, AssertionError
когда данное выражение принимает значение false
. Обычно используется для обнаружения «невозможных» ветвей кода во время выполнения.
Оно также иногда используется для проверки выходных данных функций. Глупый пример:
double square(double x) {
double result = x * x;
assert result >= 0;
return resu<
}
Вы также можете указать сообщение об ошибке следующим образом:
assert false : "Uh oh";
Я полагаю, что утверждения во время выполнения оцениваются только при запуске java
программы с -ea
опцией.
Ответ №3:
В основном это используется как утверждение Java для модульного тестирования приложения. Он проверяет условие после assert
ключевого слова, и если условие возвращает true, то оно будет продолжено, иначе это приведет к исключению.
Как указано здесь:
Инструкции «assert» являются частью функции Java assertion, представленной в Java 1.4. Функция Java assertion позволяет разработчику помещать инструкции «assert» в исходный код Java для облегчения модульного тестирования и отладки.