Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_java_2_semtcnh.doc
Скачиваний:
2
Добавлен:
22.09.2019
Размер:
425.98 Кб
Скачать

Обработка исключений

.В java обработка искл.сит.происходит след.образом: либо сам язык java,либо код,напис.прогр-ом, обеспеч. механизм,кот.сигнализирует, когда случ-ся необычное-возбуждение или генерация исключ.сит.В др.части прогр-мы помещ. код, кот.непосред-но вып-ет обработку искл.сит.Базовый механизм обработки искл.сит.реализ-ся триадой блоков try-throw-catch.Если искл.не генерир.,то catch-блоки игнорир.Исключение в Java—это объект, который описывает исключительное состояние, возникшее в каком-либо участке программного кода.Когда возникает искл. сост., созд.объект класса Exception.Этот объект пересылается в метод,обрабат-ий данный тип искл.сит.Исключ.могут возбуждаться и «вручную» для того,чтобы сообщить о некот.нештатных сит-х.Общая форма блока обработки исключений: try{// блок кода } catch (ТипИскл1 е){//обработчик искл.типа ТипИскл.1} throw(e) // повторное возбуждение искл-я}finally { }

.Операторы try-throw-catch .Сначала выполняется код, заключенный в фигурные скобки оператора try.Если во время его выполнения не происходит никаких нештатных ситуаций,то далее управление передается за закрывающую фигурную скобку последнего оператора catch, ассоциированного с данным оператором try.

Если в пределах try возникает исключительная ситуация, то далее выполнение кода производится по одному из перечисленных ниже сценариев.1.производится выполнение блока кода,ассоциированного с данным catch,2.если код в этом блоке завершается нормально,то и весть оператор try завершается нормально,3.если код в catch завершается не штатно, то и весь try завершается нештатно по той же причине,4.если возникла исключительная ситуация, класс которой не указан в качестве аргумента ни в одном catch, то выполн. всего try заверш.нештатно.В конструкции try-catch-finally обязат.явл. использование одной из частей оператора catch или finally. try { ... } finally {... }Программист сам может явно сгенерир.ошибку с пом.оператора throw.public int calculate(int theValue)throws Exception{if(theValue<0){ throw new Exception("Some");}}

Иерархия классов исключений.В вершине иерархии искл.стоит класс Throwable. Каждый из типов искл.явл. подкл-м кл. Throwable.Подкласс Ехception —использ.для описания исключит.сит., кот. должны перехватываться программным кодом пользователя.Подкласс Error, кот. предназначен для опис.исключ. сит.,кот.при обычных усл.не должны перехватываться в пользовательской программе.Объекты-исключения автоматич.созд.исполняющей средой Java в результате возникновения определенных исключ.состояний. Если в конструкции обработки исключений использ.неск.операторов catch классы искл. нужно перечислять в них последовательно, от менее общих к более общим.Наиболее специализир.классы исключений должны идти первыми,поскольку ни 1подкласс не будет достигнут,если поставить его после суперкласса.

Базовые классы

Класс Error

Error — базовый класс для исключительных ситуаций, вызванных серьезными сбоями в работе виртуальной машины Java.

Если возникла исключительная ситуация типа Error, то возможность продолжения работы программы сомнительна — нужно прекращать работу программы и, возможно, переинсталлировать Java.

Перехватывать исключения типа Error не нужно.

Класс Error :

--ошибки загрузки, компоновки, подготовки, контроля или инициализации (экземпляры подкласса LinkageError)

--ошибки виртуальной машины:

генерирует объект, который является экземпляром подкласса класса VirtualMachineError

Ошибки

--InternalError

--OutOfMemoryError

--StackOverflowError

--UnknownError

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]