Предположим, что с вашей программой случилось нечто ужасное. У вас есть метод readData(), считывающий данные из файла, в заголовке которого указано следующиее:
Content-length: 1024
Однако посе воода 733 символов файл окончился. Вы считаете эту ситуацию настолько ненормальной, что решаете генерировать исключение. Теперь необходимо решить, какого типа должно быть исключение. Нам подходит одна из разновидностей класса IOException. Просматривая документацию, вы обнаруживайте описание исключения EOFException: «Сигнализирует о том, что во время ввода данных неожиданно обнаружен признак конца файла EOF». Отлично. Это исключение можно создать двумя способами:
1 |
throw new EOFException(); |
или, если вам так больше нравится:
1 2 |
EOFException e = new EOFException(); throw e; |
Итак, для решения задачи нужно написать следующий фрагмент кода:
1 2 3 4 5 6 7 8 9 10 11 |
String readData(Scanner in) throws EOFException { .... while(...) { if(!in.hasNext()) { if(n < len) throw new EOFException; } ... } return s; } |
В классе EOFException есть второй конструктор, получающий в качестве параметра строку. Его можно использовать для более подробного описания исключения.
String gripe = «Content-length: » + len», Received: +n;
throw new EOFException(gripe);
Задача облегчается, если один из существующих классов исключений подходит для вашей цели. В этом случае нужно сделать следующее.
- Найти подходящий класс.
- Создать экземпляр этого класса.
- Генерировать исключение.
После генерации исключения управление уже не будет возвращено вызывающему методу. Это означает, что беспокоиться о возвращении значения, предусмотренного по умолчанию, или кода ошибки не нужно.
У вас проблемы с блоком питания ноутбука? Советуем купить блок питания для ноутбука на сайте darrom.com.ua. Магазин Darrom.com.ua это место где вы можете купить оригинальные блоки питания по очень доступным ценам.