Обработчик ошибок Java

Обработчик ошибок JavaПредположим, что в ходе выполнения программы, написанной на языке Java обнаруживается ошибка. Она может быть вызвана неверной информацией в файле, неправильным сетевым соединением или выходом ща пределы допустимого диапазона изменения индексов массива, а может быть попыткой использования ссылки, которая не указывает на какой-либо объект. Вполне естественно, пользователи надеются, что программа самостоятельно справится с возникшими неприятностями. Если из-за ошибки какая-либо операция не может быть завершена, то программа должна сделать одно из двух.

  • Вернуться в безопасное состояние и позволить пользователю выполнить другие команды.
  • Дать пользователю возможность сохранить результаты своей работы и аккуратно завершить работу.

Это может оказаться нелегко: фрагмент кода, в котором обнаруживается ошибка(или даже тот, выполнение которой становится причиной ошибка), обычно располагается довольно далеко от кода, который может восстановить данные и сохранить результаты, полученные пользователем. Механизм обработки исключений предназначен для передачи данных обработчику ошибок из того места, где возник сбой.

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

  • Ошибки ввода. В дополнение к неизбежным опечаткам пользователи часто предпочитают двигаться своими собственным маршрутом вместо задуманного разработчиком. Представим, что пользователь желает соединиться с Web-сайтом, но допустим синтаксическую ошибку, задавая URL. Ваша программа должна была бы проверить синтаксис, но, предположим, вы забыли это сделать. Тогда сетевое программное обеспечение сообщит об ошибке.
  • Сбои оборудования. Аппаратное обеспечение не всегда работает так, как вы ожидаете. Принтер может оказаться выключенным, а Web-страница временно недоступной. Оборудование часто отказывает в процессе работы, например, принтер может отказать на середине страницы.
  • Физические ограничения . Диск может оказаться переполненным, а оперативная память исчерпанной.
  • Ошибки программирования. Какой-либо метод может работать неправильно. Например, он может возвращать неверный результат или некорректно вызывать другие методы. Выход за пределы массива, попытка найти несуществующий элемент хеш-таблицы, извлечение элемента из пустого стека — все это примеры ошибок программирования.

Обычно метод сообщает об ошибке, возвращая специальный код, который анализируется вызывающим методом. Например, методы, считывающие информацию из файлов, по достижении конца файла обычно возвращают значение -1. Такой способ обработки ошибок часто оказывается эффективным. В других случаях в качестве признака ошибки возвращается значение null. В главе 10 мы рассмотрели пример, в котором метод getParameter() класса Applet возвращал null, если требуемый параметр отсутствовал.

К сожаления, возвращать код ошибки не всегда возможно. Иногда не удается различить правильные данные и признак ошибки. Метод, возвращающий целое число, не может, обнаружив ошибку, вернуть значение -1, поскольку оно может быть результатом вычислений. В языке Java есть возможность предусмотреть в каждом методе альтернативный выход, которым следует воспользоваться, если задачу невозможно выполнить до конца.

При этом метод не станет возвращать значение, а сгенерирует (throw) объект, инкапсулирующий информацию об ошибке. Обратите внимание на то, что выход из метода происходит незамедлительно, и он не возвращает своего нормального значения. Более того, возобновить выполнение кода, вызвавшего данный метод, невозможно. Вместо этого начинается поиск обработчика исключения, который может справиться с возникшей ошибкой.

Исключения имеют свой собственный синтаксис и являются частью особой иерархии наследования.

Вам нужны кузовные запчасти для иномарок в Санкт-Петербурге? Советуем вам купить кузовные запчасти  на сайтае smtauto.ru. Все по самым выгодным ценам.