Отлов исключений нескольких типов ( Java 7)
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

n Нужные типы исключений разделяются вертикальной чертой |

n Блоков catch с таким синтаксисом может быть много

n В блоке catch можно использовать только общие методы указанных типов исключений

n Переменная, куда помещается ссылка на объект исключения, неявно приобретает модификатор final

 

Отлов исключений нескольких типов ( Java 7)

 

n Хотелось бы:

 

try {

// Что-то ввод данных и рефлексию

}

catch (ClassNotFoundException | IOException ex) {

logger.log(ex);

throw ex;

}

 

Блок finally

 

n Блок finally необязателен

n Если присутствует, то выполняется после завершения работы остальных фрагментов кода try

n Блок finally выполняется в любом случае:

l Успешное выполнение

l С выбрасыванием исключения

l С передачей управления по break или return

 

 

Вопрос 36 Иерархия базовых классов исключений. Наследование исключений. Выбрасывание исключений. Отладка приложений. 9,22-25 Лекция Исключительные ситуации и их обработка

 

Базовые классы исключений

 

Выбрасывание исключений

 

n Объявляемые и необъявляемые исключения, выбрасываемые вызываемыми методами и операторами

n Явно (принудительно) выбрасываемые исключения

 

throw referenceToThrowableObject;

throw new NoSuchAttributeException(name);

 

Создание типов исключений

 

n Создается новый тип, наследующий от более широкого типа, подходящего по смыслу (например, java . lang . IndexOutOfBoundsException)

n Само то, что выбрасывается исключение более узкого типа, несет в себе информацию

n В состав нового типа могут вводиться новые поля и методы

n Чаще всего класс содержит только 2 конструктора (по умолчанию и с параметром-строкой), просто вызывающие конструкторы родительского класса

n Современные среды разработки облегчают создание собственных классов исключений

 

Отладка приложений

Собственные средства

n Добавление дополнительного кода

n Вывод данных на печать

n Вывод данных в системные журналы (logging)

n Создание дополнительных методов проверки

Отладчики ( debuggers)

n В составе JDK, в составе среды разработки (IDE), отладчики сторонних компаний

n Использование точек останова, пошаговых режимов, просмотра состояния объектов

 

 

Вопрос 37 Расширение классов. Порядок создания экземпляра дочернего класса. 28-34 Лекция Исключительные ситуации и их обработка

 

Наследование в Java

 

Виды наследования

n Класс                                            Наследование как типа, так и реализации

n

l  Расширяет класс

l  Реализует интерфейсы

n Интерфейс                                   Наследование ТОЛЬКО типа

l Расширяет интерфейсы

 

Расширение классов

n Класс может расширить только один класс

 

class MyClass1 {

}

class MyClass2 extends MyClass1 {

}

 

n Если родительский класс не указан явно, родительским становится класс java . lang . Object

 

Конструкторы дочерних классов

 

n Вызываются для создания объектов дочерних классов

n Могут вызывать друг друга по ключевому слову this ()

n В первой строчке должны вызывать конструкторы базового класса по ключевому слову super ()

n Ключевое слово super () может не использоваться, только если в родительском классе существует конструктор по умолчанию

 

Конструкторы дочерних классов. Пример

class ClassA {

public int a;

public ClassA(int a) {

this.a = a;

}

}

class ClassB extends ClassA{

}

 

Порядок создания объекта

n Порядок вызова конструкторов:

l Вызов конструктора базового класса

l Присваивание исходных значений полям объекта посредством выполнения соответствующих выражений и блоков инициализации

l Выполнение инструкций в теле конструктора (конструкторов)

n Состояние объекта инициализируется «послойно» от Object до конкретного класса

 

class SuperShow {

public String str = "SuperStr";

public void show() {

System.out.println("Super.show: " + str);

}

}

class ExtendShow extends SuperShow {

public String str = "ExtendStr";

public void show() {

System.out.println("Extend.show: " + str);

}

}

 

И его результат

public static void main(String[] args) {

ExtendShow ext = new ExtendShow();

SuperShow sup = ext;

ext.show();

sup.show();

System.out.println("ext.str = " + ext.str);

System.out.println("sup.str = " + sup.str);

}

 

Extend.show: ExtendStr

Extend.show: ExtendStr

ext.str = ExtendStr

sup.str = SuperStr

 

Вопрос 38 Расширение классов. Переопределение методов. 35-37,42 Лекция Исключительные ситуации и их обработка

 

Дата: 2019-07-30, просмотров: 259.