- •Нововведения Java5
- •java.util.Formatter
- •План лекции
- •Проблема
- •java.lang.CharSequence
- •java.lang.StringBuilder
- •java.lang.Appendable
- •java.lang.Readable
- •Проблема
- •Форматированные ввод и вывод
- •java.util.Formatter
- •java.util.Formatter
- •java.util.Formatter
- •Строка форматирования
- •Преобразующие спецификаторы формата
- •Возможности форматирования
- •Возможности форматирования
- •Возможности форматирования
- •Метод printf()
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •Проблема
- •Обновленные коллекции
- •Проблема
- •Обновленная рефлексия
- •Пример использования аннотаций
- •Проблема
- •java.util.concurrent
- •java.util.concurrent
- •Изменения в пакете java.lang
- •Изменения в пакете java.util
- •Нововведения Java7
- •План лекции
- •Проблема
- •Бинарные литералы
- •Проблема
- •Подчеркивание в числовых литералах
- •Подчеркивание в числовых литералах
- •Проблема
- •Проблема
- •Строки в предложениях switch
- •Проблема
- •Вывод типа (type inference)
- •Проблема
- •Проблема
- •Блок try с ресурсами
- •Блок try с ресурсами
- •Проблема
- •Проблема
- •Проблема
- •Отлов исключений нескольких типов
- •Спасибо за внимание!
- •Дополнительные источники
Проблема
Имеется:
try {
// Некоторая логика, ввод данных, рефлексия
}
catch (ClassNotFoundException ex) { logger.log(ex);
throw ex;
}
catch (IOException ex) { logger.log(ex); throw ex;
}
// Дублирование кода. И что, метод для этого писать?..
51
Проблема
Имеется:
try {
// Некоторая логика, ввод данных, рефлексия
}
catch (Throwable ex) { logger.log(ex); throw ex;
}
//Радикально.
//Но если некоторые виды исключений все-таки надо
//различать, то что тогда делать? Особенно, если у них
//общий непосредственный предок?
52
Проблема
Хотелось бы:
try {
// Некоторая логика, ввод данных, рефлексия
}
catch (ClassNotFoundException | IOException ex) { logger.log(ex);
throw ex;
}
53
Отлов исключений нескольких типов
Нужные типы исключений разделяются вертикальной чертой |
Блоков catch с таким синтаксисом может быть много
В блоке catch можно использовать только общие методы указанных типов исключений
Переменная, куда помещается ссылка на объект исключения, неявно приобретает модификатор final
54
Спасибо за внимание!
Дополнительные источники
Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс», 2001. – 624 с.
Вязовик, Н.А. Программирование на Java. Курс лекций [Текст] / Н.А. Вязовик. – М. : Интернет-университет информационных технологий, 2003. – 592 с.
Эккель, Б. Философия Java [Текст] / Брюс Эккель. – СПб. : Питер, 2011. – 640 с.
Шилдт, Г. Java 2, v5.0 (Tiger). Новые возможности [Текст] / Герберт Шилдт. – СПб. : БХВ-Петербург, 2005. – 206 с.
JavaSE at a Glance [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/overview/index.html, дата доступа: 21.10.2011.
JavaSE APIs & Documentation [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html, дата доступа: 21.10.2011.
