Можешь назвать стандартные исключения, которые можно проверить в Java?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Ожидают, что будет понятна базовая иерархия исключений в Java и несколько самых частых стандартных типов. Важно уметь отличать checked и unchecked исключения и понимать, когда их обычно ловят. Для QA особенно полезно знать исключения, которые часто встречаются в автотестах и работе с API, файлами и коллекциями.
Определение:
Стандартные исключения в Java — это встроенные типы ошибок, которые JVM и библиотеки Java выбрасывают при некорректной работе программы. Они наследуются от Throwable, чаще всего от Exception или RuntimeException.
Их можно использовать в проверках, чтобы убедиться, что код ведёт себя ожидаемо при ошибках: например, передаёт null, обращается к несуществующему элементу или пытается прочитать отсутствующий файл.
Часто проверяют такие исключения:
NullPointerExceptionIllegalArgumentExceptionIndexOutOfBoundsExceptionArrayIndexOutOfBoundsExceptionClassCastExceptionNumberFormatExceptionArithmeticExceptionNoSuchElementExceptionIOExceptionFileNotFoundException
Пример использования:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertThrows;
class ExceptionTest {
@Test
void shouldThrowNumberFormatException() {
assertThrows(NumberFormatException.class, () -> Integer.parseInt("abc"));
}
@Test
void shouldThrowIndexOutOfBoundsException() {
var list = java.util.List.of("a", "b");
assertThrows(IndexOutOfBoundsException.class, () -> list.get(5));
}
}
Пояснение кода:
В первом тесте проверяется, что строка "abc" не может быть преобразована в число, поэтому Integer.parseInt выбрасывает NumberFormatException.
Во втором тесте создаётся список из двух элементов, а затем выполняется доступ по несуществующему индексу 5. Это приводит к IndexOutOfBoundsException.
Метод assertThrows в JUnit используется для проверки ожидаемого исключения: если нужное исключение не выброшено, тест упадёт.
Ключевые моменты:
Exceptionв Java делятся на checked и unchecked.IOExceptionиFileNotFoundException— checked исключения, их нужно обрабатывать или пробрасывать.NullPointerException,IllegalArgumentException,IndexOutOfBoundsExceptionиNumberFormatException— unchecked, обычно являются ошибками в логике.- В автотестах часто проверяют не только сам факт исключения, но и его тип.
- Для проверки исключений в тестах обычно используют
assertThrows. - Для QA важно знать типичные причины исключений в коллекциях, при парсинге строк и работе с файлами.