На этом шаге мы поговорим о том, как генерировать исключения
Предположим у вас есть файл в котором ожидается наличие 1000 символов. Но при попытке прочитать их из файла, после ввода 700 символов был достигнут конец файла. В такой ситуации нужно сообщить пользователю что преждевременно достигнут конец файла. Для этого есть исключение типа EOFException (работу с файлами рассмотрим позднее). Оно сигнализирует о том, что во время ввода данных неожиданно обнаружен конец файла. Для того чтобы бросить исключение нужно создать объект класса EOFException и потом воспользоваться ключевым словом throw. Ниже приведен пример использования класса EOFException.
String readData(Scanner in) throws EOFException { ... while (...) { if (!in.hasNext()) { /*достигнут ли конец файла*/ if (n < len) { throw new EOFException(); } } ... } ... }
Отметим, что после того как исключение будет сгенерировано в методе, управление уже не возвратится в вызывающую часть программы. Это означает, что не нужно заботиться о возвращении значения, предусмотренного по умолчанию, или кода ошибки.
В прикладной программе может возникнуть ситуация, не предусмотренная ни в одном из стандартных классов исключений. В этом случае нетрудно создать свой собственный класс исключения. Для этого он должен быть подклассом, производным от класса Exception или любого одного из его подклассов. Этот класс можно снабдить любыми дополнительными функциями для класса наследника.
На следующем шаге мы поговорим про перехват исключений