
- •1.Конструктор копирования
- •2.Перегрузка переопределение функц
- •3.Перегрузка бинарных операторов
- •4.Перегрузка унарных операторов
- •5.Static- и Const- компоненты класса
- •6.Организация внешн.Доступа к лок.Комп. Класса(Спецификатор friend)
- •7.Proxi-классы
- •8.Наследование простое
- •9.Множественное наследование
- •10.Виртуальные функции
- •11.Абстрактные классы
- •13.Шаблоны.Параметрезированные классы
- •12.Виртуальный деструктор
- •14.Совместное использование шаблонов и наследование
- •15.Реализация smart-указателя
- •16.Классы поддерживающие транзакцию
- •17.Преобразование типа.Явное преобразование типа
- •18.Преобразование типов определённых в программе
- •20.Строковые потоки,их свойства,назначение.
- •22.Организация файла последовательного доступа
- •24.Генерация исключений в конструкторах.Иерархия искл.В станд.Библиотеке
- •23.Организация файла произвольного доступа
- •25. Спецификации исключительных ситуаций
- •27. Исключительные ситуации.Основы обработки исключительных ситуаций
- •28. Задание собственного неожиданного обработчика
- •29. Исключительная ситуация, генерируемая оператором new
- •30. Перенаправление исключительных ситуаций
- •31.Категории итераторов.Основные итераторы
- •32. Категории итераторов.Основные итераторы
- •33.Пасивные и активные итераторы
- •34. Контейнеры последовательностей
- •35.Ассоциативные контейнеры
- •36.Адаптеры контейнеров
- •37.Патеррн (Абстрактная фабрика)
- •38.Патеррн (Строитель)
- •39. Патеррн (Адаптер)
- •40.Патеррн (Команда)
- •41.Спецификатор final в java
- •42.Вложенные и внутренние классы в java
- •43.Основы наследования в java
- •47.Абстрактные классы в java
- •44.Использование ключевого слова super в java
- •50.Интерфейсы в java
- •51.Множественное наследование в java
- •52.Конфликты имён при комбинировании интерфейсов в java
- •53.Расширение интерфейса в java
- •54. Исключительные ситуации. Обработка исключений java
54. Исключительные ситуации. Обработка исключений java
В Java все исключения делятся на три типа: контролируемые исключения(checked), ошибки (Errors) и исключения времени выполнения (RuntimeExceptions) - последние два типа также объединяют в категорию неконтролируемых (unchecked) исключений. В чем различие? Все очень просто контролируемые исключения представляют собой те ошибки, которые могут быть обработаны в ходе выполнения программы, как вы уже догадались к этому типу относятся все потомки класса Exception (но не RuntimeException). Контролируемые исключения обязательны для обработки в коде программы, они должны быть обработаны либо включением в блок try-catch, либо объявлены в сигнатуре метода.
Неконтролируемые (unchecked) исключения не требуют обязательной обработки, поскольку представляют собой те ситуации, когда ошибка не зависит непосредственно от программиста (например произошёл сбой в аппаратном обеспечении), либо те, когда ошибку обрабатывать не имеет смысла, т.к. проще внести изменения в код - к ним относятся все потомки классов Error и RuntimeException.
Все современные реализации языка Java придерживаются принципа обработки или объявления исключений (The Catch or Specify Requirement), который гласит, что код, который потенциально может сгенерировать контроллируемое исключение должен либо быть заключен в блок try-catch (таким образом в блоке catch мы предоставляем обработчик для исключительной ситуации), либо мы должны объявить, что наш метод может выбросить такое исключение (после ключевого слова throws, после имени метода).