Введение
Утверждения сделаны с использованием Javaassert
заявление реализовано. Когда утверждение выполняется, оно считается истинным. Если это не удается, JVM бросаетAssertionError
ошибка. Он в основном используется для целей тестирования во время разработки.
assert
Операторы используются с булевыми выражениями и могут быть записаны двумя разными способами:
assert expression;
assert expression : errorMessage;
Пример
public class AssertTest {
public static void main(String[] args) {
int value = 15;
assert value >= 20 : "Underweight";
System.out.println("value is " + value);
}
}
вывод:
value is 15
можно увидетьassert
Оператор не работает, потому что Java по умолчанию не запускает проверку утверждений при выполнении программы, то есть все операторы утверждений будут игнорироваться.
Если вы хотите включить проверку утверждений, вам нужно использовать-enableassertions
или-ea
Параметр JVM для включения; если вы хотите вручную игнорировать проверку утверждения, вы можете использовать-disableassertions
или-da
Аргумент JVM для игнорирования утверждений.
Выполнение заказаjava -ea AssertTest
Вывод после включения утверждения:
Exception in thread "main" java.lang.AssertionError: Underweight
at AssertTest.main(AssertTest.java:11)
Пишите, используя первый безошибочный синтаксис:
public class AssertTest {
public static void main(String[] args) {
int value = 15;
assert value >= 20;
System.out.println("value is " + value);
}
}
вывод:
Exception in thread "main" java.lang.AssertionError
at AssertTest.main(AssertTest.java:11)
Видно, что здесь только брошеноAssertionError
, без сообщения об ошибке
Зачем использовать утверждения
- Убедитесь, что код, который выглядит недостижимым, на самом деле недоступен
- Убедитесь, что предположение верно
- удостовериться
switch case
Приговорdefault
отделение недоступно - Проверить состояние объекта
- Проверка в начале метода
- Проверка после вызова метода
Меры предосторожности
Утверждения в основном используются для проверки логически невозможных ситуаций. Например, их можно использовать для проверки состояния, ожидаемого кодом, до его запуска или после завершения выполнения кода. В отличие от обычной обработки исключений/ошибок, утверждения обычно отключаются во время выполнения.
где использовать утверждения
- Параметры приватных методов. Частные параметры предоставляются только кодом разработчика, разработчик может захотеть проверить свои предположения о параметрах.
- отраслевые условия, такие как
switch case
утверждение - условие в начале метода
где утверждения не используются
- Утверждения не должны использоваться для замены сообщений об ошибках/исключениях.
- Утверждения не должны использоваться
public
параметры в методах, как они могут быть предоставлены пользователем - Утверждения не должны использоваться в аргументах командной строки.
резюме
- Утверждения — это способ отладки, и ошибки утверждений вызовут
AssertionError
, утверждения могут быть включены только во время разработки и тестирования - Не используйте утверждения для исправимых ошибок, вместо этого генерируйте исключения
- Утверждения редко используются в JAVA, лучше писать модульные тесты.
Использованная литература: