Оператор assert
Оператор assert используется для проверки утверждений
во время выполнения программы. В первом варианте синтаксиса
мы передаем логическое выражение, которое должно быть истинным.
Во втором варианте мы передаем логическое выражение и сообщение,
которое будет добавлено к AssertionError, если утверждение ложно.
По умолчанию проверки assert отключены, и их нужно включать
флагом -ea при запуске программы.
Синтаксис
assert condition;
assert condition : message;
Пример
Давайте проверим, что переменная res больше нуля:
public class Main
{
public static void main(String[] args)
{
int res = 5;
assert res > 0;
System.out.println("OK");
}
}
Результат выполнения кода:
"OK"
Пример
Давайте вызовем AssertionError, передав сообщение:
public class Main
{
public static void main(String[] args)
{
int res = -1;
assert res > 0 : "res must be positive";
System.out.println("OK");
}
}
Результат выполнения кода при включенных assert:
Exception in thread "main" java.lang.AssertionError: res must be positive
Пример
Давайте проверим утверждение внутри метода:
public class Main
{
public static void main(String[] args)
{
System.out.println(check(3));
}
public static int check(int res)
{
assert res > 0 : "res must be positive";
return res * 2;
}
}
Результат выполнения кода:
6
Смотрите также
-
класс
AssertionError,
который выбрасывается при ложном утверждении -
класс
Throwable,
который является базовым для всех ошибок -
метод
getMessage,
который возвращает сообщение ошибки -
метод
printStackTrace,
который выводит стек вызовов