Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Исключительные ситуации (exceptions) могут возникнуть во время выполнения (runtime) программы, прервав ее обычный ход. К ним относится деление на нуль, отсутствие загружаемого файла, отрицательный или вышедший за верхний предел индекс массива, переполнение выделенной памяти и масса других неприятностей, которые могут случиться в самый неподходящий момент.

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

Блоки перехвата исключения. Мы можем перехватить и обработать исключение в программе. Говорят, что исполняющая система или программа "выбрасывает" (throws) объект-исключение. Этот объект "пролетает" через всю программу, появившись сначала в том методе, где произошло исключение, а программа в одном или нескольких местах пытается (try) его "перехватить" (catch) и обработать. Обработку можно сделать полностью в одном месте, а можно обработать исключение в одном месте, выбросить снова, перехватить в другом месте и обрабатывать дальше. Для того чтобы попытаться (try) перехватить (catch) объект-исключение, надо весь код программы, в котором может возникнуть исключительная ситуация, охватить оператором try{} catch о {}. Каждый блок catchou перехватывает исключение только одного типа, того, который указан в его аргументе. Но можно написать несколько блоков catch(){} для перехвата нескольких типов исключений.

Например возникают исключения двух типов. Напишем блоки их обработки:

class SimpleExtlf

public static void main(String[] args){

try{

int n = Integer.parselnt(args[0]);

System.out.println("After parselnt());

System.out.println(" 10 / n = " + (10 / n));

Systfem. out. println ("After results output");

}catch(ArithmeticException ae){

System.out.println("From Arithm.Exc. catch: "+ae);

}catch(ArraylndexOutOfBoundsException arre){

System.out.println("From Array.Exc.catch: "+arre);

}finally{

System.out.println("From finally");

}

System.out.println("After all actions");

} }

В программу листинга вставлен блок try{} и два блока перехвата catchou для каждого типа исключений. Обработка исключения здесь заключается просто в выводе сообщения и содержимого объекта-исключения, как оно представлено методом tostring() соответствующего класса-исключения. После блоков перехвата вставлен еще один, необязательный блок finaliy(). Он предназначен для выполнения действий, которые надо выполнить обязательно, чтобы ни случилось. Все, что написано в этом блоке, будет выполнено и при возникновении исключения, и при обычном ходе программы, и даже если выход из блока try{} осуществляется оператором return. Если в операторе обработки исключений есть блок finally{}, то блок catch () {} может отсутствовать, т. е. можно не перехватывать исключение, но при его возникновении все-таки проделать какие-то обязательные действия. Кроме блоков перехвата в листинге после каждого действия делается трассировочная печать, чтобы можно было проследить за порядком выполнения программы.

 

30. Программирование отношений типа «Является», «Имеет», «Использует», «Создает».

В Java поддерживается 4 типа отношений между классами:

1) Отношение типа «является» подразумевает, что один из классов представляет собой спец вариант другого класса(«парта является мебелью»);

2)Отношение типа «имеет» подразумевает процедуру включения одного объекта в другой;

3) Отношение типа «использует» (студент использует ручку)

4) Отношения типа «создаёт» - когда один объект внутри себя создаёт второй (Студент создаёт лекции)

Примеры отношений: 1. public class Parrot extends Bird

2. Wind left wind;

Wind right wind;

3. public Egg born (Parrot p, Nest n)

{…

Egg a=new Egg(p,n);

return a; }

4. Parrot Kesha=new Porrot(«Кеша»true); Bird

Parrot Glasha=new Porrot(«Глаша»false);

Nest n=new Nest (30);

Egg child=Glasha.born(Kesha,n); ß Отношение типа «использует» и «создаёт»

 

 





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 522 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2281 - | 2210 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.