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.