assert
Проверка внутреннего условия программы. По умолчанию выключена, включается ключом -ea.
Доступно с: Java 1.4
Синтаксис
assert condition; / assert condition : message;Примеры
Без ключа -ea проверка не выполняется вовсе:
void main() {
int age = -5;
assert age >= 0 : "age must not be negative: " + age;
IO.println("Age: " + age);
}Результат:
Age: -5Тот же код, запущенный как java -ea Main.java:
void main() {
int age = -5;
assert age >= 0 : "age must not be negative: " + age;
IO.println("Age: " + age);
}Результат:
Exception in thread "main" java.lang.AssertionError: age must not be negative: -5Примечания
assert ловит ошибки программиста во время разработки и тестов: «здесь список уже отсортирован», «сюда не может прийти null». Проверять им входные данные и аргументы публичных методов нельзя — в рабочем запуске проверка выключена; для этого бросайте IllegalArgumentException или вызывайте Objects.requireNonNull(). В условии не должно быть побочных эффектов: без -ea оно не вычисляется.
См. также
- throw — Бросает исключение и прерывает выполнение метода.
- IllegalArgumentException — Сообщает, что метод получил недопустимый аргумент.
- Objects.requireNonNull() — Проверяет, что значение не null, и сразу бросает NullPointerException с понятным сообщением.
В учебнике
- Что такое исключения — Исключения в Java — как программа сообщает об ошибке, как читать трассировку стека, частые исключения и иерархия Throwable.