
- •К экзамену
- •1 Семестр
- •1.Общая характеристика Java
- •2. Жизненный цикл программы Java
- •3. Лексические основы Java
- •4. Операции в Java
- •5. Примитивные типы данных
- •6. Булевские переменные и булевская алгебра
- •7. Условный оператор
- •9. Оператор Break
- •10. Оператор Switch
- •11. Цикл While
- •12. Цикл Do
- •13. Цикл For
- •14. Одномерные массивы
- •15. Многомерные массивы
- •16. Введение в строки
- •Преимущества:
- •Недостатки:
- •Преимущества:
- •Недостатки:
- •17. Основные конструкторы класса String
- •Работа со строками (класс String)
- •21. Класс StringBuffer
- •22. Методы StringBuffer
- •23. Класс StringTokenizer и его методы
- •24. Общие понятия об ооп
- •28. Определение классов и методов
- •29. Модификаторы доступа
- •30. Описание методов
- •38. Статические переменные
- •39. Перегрузка метода
- •40. Рекурсивные методы
- •41. Конструкторы
- •42. Инициализаторы
- •43. Реализация наследования в Java
- •44. Производные методы
- •Замечание
- •Типы исключений
- •2. Блоки try-catch-throw
- •Несколько разделов catch
- •Вложенные операторы try
- •Throw ОбъектТипаThrowable;
- •3. Иерархия классов исключительных ситуаций
- •4. Базовые классы исключений и их методы
- •5. Проверяемые и непроверяемые исключения
- •6. Создание собственных классов исключений
- •7. Типы коллекций в Java
- •8. Класс ArrayList, конструкторы, основные методы
- •9. Класс LinkedList и его методы
- •10. Общая характеристика потоков Java
- •Создание потоков
- •Запуск и остановка
- •Приостановка и возобновление
- •11. Иерархия типов в java.Io
- •12. Класс InputStream и его методы
- •19. Класс File
- •Класс DataInputStream (производный от InputStream)
- •Класс DataOutputStream (производный от OutputStream)
- •Классы BufferedInputStream и BufferedOutputStream
- •Класс RandomAccessFile
- •Классы InputStreamReader и OutputStreamWriter (производные от Reader и Writer)
- •Классы FileReader и FileWriter
- •Зачем сериализация нужна?
- •Как сериализовать объект?
- •Формат сериализованного объекта
- •Алгоритм сериализации Java
- •21. Форматирование данных при выводе Методы printf и format
- •22. Класс Scanner, конструкторы, основные методы
- •23. Архитектура mvc (Model/View/Controller) Архитектура Model-View-Controller (mvc)
- •Еще Java фреймвоки
- •24. Gui общее понятия, принципы реализации в Java
- •25. Событийная модель Java
Замечание
В языке Delphi вместо ключевого слова catch используется except.
Типы исключений
В вершине иерархии исключений стоит класс Throwable. Каждый из типов исключений является подклассом класса Throwable. Два непосредственных наследника класса Throwable делят иерархию подклассов исключений на две различные ветви. Один из них - класс Ехception - используется для описания исключительных ситуации, кото-рые должны перехватываться программным кодом пользователя. Другая ветвь дерева подклассов Throwable - класс Error, который предназначен для описания исклю-чительных ситуаций, которые при обычных условиях не должны перехватываться в пользовательской программе.
2. Блоки try-catch-throw
try и catch
Для задания блока программного кода, который требуется защитить от исключений, исполь-зуется ключевое слово try. Сразу же после try-блока помещается блок catch, задающий тип исключения которое вы хотите обрабатывать.
class Exc2 {
public static void main(String args[]) {
try {
int d = 0;
int a = 42 / d;
}
catch (ArithmeticException e) {
System.out.println("division by zero");
}
}
}
Целью большинства хорошо сконструированных catch-разделов долж-на быть обработка возникшей исключительной ситуации и приведение переменных программы в некоторое разумное состояние - такое, чтобы программу можно было продолжить так, будто никакой ошибки и не было (в нашем примере выводится предупреждение - division by zero).
Несколько разделов catch
В некоторых случаях один и тот же блок программного кода может воз-буждать исключения различных типов. Для того, чтобы обрабатывать по-добные ситуации, Java позволяет использовать любое количество catch-разделов для try-блока. Наиболее специализированные классы исключений должны идти первыми, поскольку ни один подкласс не будет достигнут, если поставить его после суперкласса. Следующая про-грамма перехватывает два различных типа исключений, причем за этими двумя специализированными обработчиками следует раздел catch общего назначения, перехватывающий все подклассы класса Throwable.
class MultiCatch {
public static void main(String args[]) {
try {
int a = args.length;
System.out.println("a = " + a);
int b = 42 / a;
int c[] = { 1 };
c[42] = 99;
}
catch (ArithmeticException e) {
System.out.println("div by 0: " + e);
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("array index oob: " + e);
}
}
}
Этот пример, запущенный без параметров, вызывает возбуждение ис-ключительной ситуации деления на нуль. Если же мы зададим в командной строке один или несколько параметров, тем самым установив а в значение боль-ше нуля, наш пример переживет оператор деления, но в следующем опе-раторе будет возбуждено исключение выхода индекса за границы масси-ва ArrayIndexOutOf Bounds. Ниже приведены результаты работы этой программы, за-пущенной и тем и другим способом.
С:\> java MultiCatch
а = 0
div by 0: java.lang.ArithmeticException: / by zero
C:\> java MultiCatch 1
a = 1
array index oob: java.lang.ArrayIndexOutOfBoundsException: 42