русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Исключительные ситуации.

В процессе работы программы могут возникать ситуации, нарушающие нормаль­ный ход вычислений: деление на нуль, ошибка обмена, ошибка при обращении по се­ти, попытка создать экземпляр абстрактного класса и т. д. Такие ситуации принято на­зывать исключительными ситуациями, или исключениями.

По умолчанию в подобных случаях интерпретатор Java выводит сообщение, опи­сывающее исключительную ситуацию, и завершает работу программы.

Учитывая, что ряд Java-программ выполняется под управлением других систем, становится ясно, что описанная реакция на возникновение исключительных ситуаций не всегда приемлема. Чтобы изменить порядок обработки исключений, надо при соз­дании программы принять описанные ниже меры.

Фрагменты кода, которые могут генерировать исключительные ситуации, следует поместить в блок try следующего формата:

try

{

Последовательность команд

}

Непосредственно за блоком try должен размещаться как минимум один блок catch, который выглядит так:

catch (описание_исключения)

{

Команды обработки исключительной ситуации

}

При нормальной работе программы наличие блока try никак не сказывается на её выполнении. По завершении фрагмента, предшествующего блоку try, управление пе­редается внутрь блока, а после того как все команды внутри блока будут выполнены, управление перейдет к первой команде, следующей после блока catch.

Для каждой категории исключительных ситуаций предусмотрен специальный класс, содержащий описания исключений. Так, например, арифметические ошибки описываются классом ArithmeticException, некорректная попытка создания объекта URL - классом с названием MalformedURLException и т. д.

Классы, которые описывают интересующие нас исключительные ситуации, явля­ются подклассами класса Exception. Класс Exception, в свою очередь, является под­классом класса Throwable.

Иерархическая структура, включающая некоторые (очень немногие) классы, опи­сывающие исключительные ситуации, представлена ниже.

Exception

!

!-- IOException

! !

! !-- MalformedURLException

! !

! !-- UnknownHostException

! …

!

!-- RuntimeException

!

!-- ArithmeticException

!

Рассмотрим блок try, содержащий несколько команд, и блоки catch, предназна­ченные для обработки исключительных ситуаций.

try

{

sock=new Socket (www.myserver.com, 80};

a=b/d;

}

catch (UnknownHostException ex)

{

Обработка исключительной ситуации UnknownHostException

}

catch (IOException ex)

{

Обработка исключительной ситуации IOException

}

catch (ArithmeticException ex)

{

Обработка исключительной ситуации ArithmeticException

}

За блоком try следуют три блока catch. Конструктор класса Socket, вызываемый в блоке try, может генерировать исключения UnknownHostException и IOException, а при делении b/d, если значение d будет равно нулю, возникнет исключительная ситуация ArithmeticException. Каждое из этих исключений обрабатывается отдельным блоком catch.

Однако код программы можно существенно сократить. Три блока catch можно за­менить одним блоком, представленным ниже.

catch (Exception ex)

{

Обработка исключительных ситуаций всех типов

}

Если при выполнении метода может возникнуть исключительная ситуация, кото­рая не обрабатывается в теле метода, необходимо специально оговорить это в тексте программы. При объявлении такого метода следует указать ключевое слово throws, со­провождаемое перечнем имён классов, описывающих исключительные ситуации, ко­торые могут возникнуть при работе метода.

Просмотров: 746


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.