Javanese Online

Выброс исключений. Throw, throws

Как выяснили ранее, исключения нужно бросать, когда выполнить задачу невозможно.

Выброс RuntimeException

Исключения, являющиеся подтипами RuntimeException, стоит бросать, когда программист, обратившийся к вашему коду, сделал это неправильно. Например, при некорректных входных данных.

Любое непроверяемое исключение легко может быть брошено:

throw new RuntimeException("Что-то пошло не так.");
throw new IllegalArgumentException("Передана свинья, ожидался котик.");
throw new UnsupportedOperationException("¯\\_(ツ)_/¯");

Строка, передаваемая исключению в конструктор, — это сообщение, поясняющее причину ошибки. Оно необязательно, но без него понять причину ошибки сложнее.

Выброс проверяемых исключений (checked exceptions)

Чтобы выбросить проверяемое исключение, нужно объявить о том, что метод в принципе способен бросать исключение такого типа:

public void doSomethingRisky()
        throws FileNotFoundException {
    throw new FileNotFoundException("какой ещё файл?");
}

Объявление throws обяжет клиента этого метода ловить исключение.

Даже если в методе нигде нет выброса исключения заявленного типа, но есть throws, клиент обязан будет ловить (или пропускать, объявляя throws в своём методе) исключения этого типа.

Комментарии к уроку

Сообщить об ошибке

Javanese.Online в GitHub

Чаты и каналы в Telegram

RSS-лента