Проблема с ключевым словом java assert

#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 для облегчения модульного тестирования и отладки.