Составители:
Рубрика:
70
лись, нужно выполнить дополнительные действия, они заключаются в
блок finally{…}.
Один блок try может сопровождаться несколькими блоками catch.
10.4 Классификация ошибок времени исполнения
Оператор throw применим только к объектам типа Throwable, то
есть только расширения этого класса могут использоваться для описа-
ния ошибок времени исполнения. Класс Throwable расширяется двумя
подклассами, определяющимими две категории ошибок времени ис-
полнения: Error и Exception. Класс Error описывает те ошибки времени
исполнения, которые не имеет смысла обрабатывать в прикладной
программе. Класс Exception является базовым для
исключений – тех
ошибок времени исполнения, которые возникают из-за погрешностей
в проектировании программы.
Класс Exception имеет множество расширений, одно из них –
RuntimeException – описывает исключения, которые можно не декла-
рировать и не ловить, так как исключения этого типа отлавливает вир-
туальная машина.
Исключения-наследники RuntimeException наследуют эти свойства.
Все остальные расширения класса Exception должны
обрабатывать-
ся.
10.5 Класс Throwable и его расширения
Класс Throwable описывает ошибки времени исполнения, исполь-
зуя понятия «Сообщение», «Причина» и «Стек Вызовов». «Сообще-
ние» – строка, предназначенная для передачи информации в место
обработки. «Причина» - объект типа Throwable, послуживший причи-
ной выбрасывания данного объекта Throwable, может использоваться
для организации цепочек исключений с целью определения исходного
исключения при каскадном стиле обработки. «Стек Вызовов» - стек
вызовов
методов, приведший программу к месту выбрасывания ис-
ключения. Предусмотрены конструкторы, заполняющие поля «Сооб-
щение» и/или «Причина» и конструктор по умолчанию.
71
9 public Throwable()
9 public Throwable(String message)
9 public Throwable(Throwable cause)
9 public Throwable(String message,
Throwable cause)
Методы класса возвращают значения полей или инициируют их
изменения:
9 public String getMessage()
9 public String toString()
9 public Throwable
initCause(Throwable cause)
9 public Throwable getCause()
9 public Throwable fillInStackTrace()
9 public void printStackTrace()
Занятие 11. Многопоточность
11.1 Понятие потока исполнения
Исполняемые файлы различных форматов содержат разделы (сег-
менты) данных и текста. Сегмент данных хранит значения переменных
программы, сегмент текста – список закодированных команд. Боль-
шинство современных операционных систем позволяют использовать
несколько сегментов текста с одним сегментом данных, переключая
процессор с исполнения одного списка команд на исполнение другого.
При этом создается иллюзия выполнения
нескольких задач в рамках
одного процесса. Каждый сегмент текста в этом случае формирует
подпроцесс, или легковесный процесс(lightweight process), или нить
(thread), или поток исполнения.
11.2 Класс Thread
Java имеет встроенные средства управления потоками исполнения,
опирающиеся на базовое API. Потоки исполнения описываются клас-
сом java.lang.Thread. Каждый поток исполнения является объектом