throws
Объявляет, какие проверяемые исключения может бросить метод.
Доступно с: Java 1.0
Синтаксис
Type method() throws ExceptionType { … }Примеры
Метод передаёт IOException вызывающему коду:
String firstLine(Path file) throws IOException {
return Files.readAllLines(file).getFirst();
}
void main() {
try {
IO.println(firstLine(Path.of("missing.txt")));
} catch (IOException e) {
IO.println("Cannot read: " + e.getClass().getSimpleName());
}
}Результат:
Cannot read: NoSuchFileExceptionПримечания
Проверяемые (checked) исключения — наследники Exception, но не RuntimeException: IOException, InterruptedException. Их нужно либо поймать, либо объявить в throws, иначе ошибка «unreported exception IOException; must be caught or declared to be thrown». Непроверяемые (IllegalArgumentException, NullPointerException) объявлять не обязательно.
Метод main тоже может объявить throws Exception — для коротких программ это допустимо.
См. также
- throw — Бросает исключение и прерывает выполнение метода.
- try / catch / finally — Перехватывает исключения; finally выполняется всегда, а try с ресурсами сам их закрывает.
- Files.readString() — Читает весь текстовый файл в одну строку.
Вопросы и ответы по теме
В учебнике
- Проверяемые и непроверяемые исключения — Checked и unchecked исключения в Java — что требует компилятор, объявление throws, RuntimeException и обёртывание исключений.