
- •1. Історія створення Java.
- •2. Історія розвитку Java
- •3.Опишіть поняття “об’єкт”
- •4. Опишіть поняття “клас”
- •5. Опишіть типи відношень між класами
- •6. Переваги і недоліки об’єкто-зорієнтованого програмування
- •7. Опишіть правила побудови ідентифікаторів мови Java, наведіть приклади
- •8. Поняття літералів. Приклади
- •9. Оператори та операції в мові Java
- •11. Типи даних у мові Java
- •12. Клас Object
- •13. Клас String
- •14. Клас Class
- •15. Імена в Java
- •16. Пакети в Java
- •17. Область видимості імен
- •18.Об’ява класів у Java
- •19.Приведення типів у Java
- •21.Приведення посилальних типів даних.
- •22.Приведення до рядка.
- •23.Заборонені приведення.
- •24.Застосування приведення типів.
- •25.Статичні елементи.
- •26. Ключові слова this і super.
- •27. Ключове слово abstract.
- •28. Поняття інтерфейсів.
- •29. Поліморфізм.
- •30. Масиви в Java.
- •31. Приведення типів для масивів.
- •32. Клонування масивів.
- •33. Керування ходом виконання програми.
- •34. Нормальне і перерване виконання операторів.
- •35. Блоки і локальні змінні.
- •36. Порожній оператор.
- •38. Синтаксис оператора if.
- •39. Синтаксис оператора switch.
- •40. Керування циклами.
- •41.Синтаксис оператора while
- •42.Ситаксис оператора do
- •43.Синтаксис оператора for
- •44.Оператори break I continue
- •45.Іменовані блоки
- •46. Оператор return
- •47. Оператор synchronized
- •48. Помилки при роботі програми. Виняткові ситуації
- •48. Помилки при роботі програми. Виняткові ситуації
- •49.Причини виникнення помилок
- •50.Обробки виняткових ситуацій
- •51.Конструкція try-catch-finally
- •52.Використання оператора throw
- •53.Виняткові ситуації, які перевіряються і які не перевіряються
- •54.Створення класів користувача обробки виняткових ситуацій
- •55.Поняття потокв в Java
- •56.Базові класи для роботи з потоками
- •57.Класс Thread
- •58. Інтерфейс Runnable
- •60. Потоки-демони
- •61.Синхронізація роботи потоків.
- •62.Класи обгортки для примітивних типів.
- •63.Клас Math.
- •66.Клас Calendar.
- •67.Клас TimeZone.
- •68. Колекції java
- •69.Інтерфейс Collection.
- •70.Інтерфейс Set.
- •71.Інтерфейс List.
- •72.Інтерфейс Map.
- •73.Інтерфейс SortedSet.
- •74.Інтерфейс SortedMap.
- •75.Інтерфейс Iterator.
- •76.Конкретні класи колекцій.
- •77.Клас Properties.
- •78. Інтерфейс Comparator.
- •79.Клас BitSet.
- •80.Клас Random.
- •81.Система введення/виведення. Потоки даних.
- •82.Класи реалізації потоків даних.
- •84. Робота із файловою системою.
- •59. Робота із пріоритетами потоків
50.Обробки виняткових ситуацій
. Конструкция try-catch
У загальному випадку конструкція виглядає так .
try {
...
} catch ( SomeExceptionClass e ) {
...
} catch ( AnotherExceptionClass e ) {
...
}
Працює вона таким чином. Спочатку виконується код укладений у фігурні
дужки оператора try . Якщо під час його виконання не відбувається ніяких позаштатних
ситуацій , то далі управління передається , за що закриває фігурну дужку , останнього
оператор catch асоційованого з даним оператором try .
У разі якщо в межах try виникає виняткова ситуація , то далі виконання
коду проводиться по одному з нижче перерахованих сценаріїв .
• виникла виняткова ситуація , клас якої вказаний як параметр одного
з блоків catch . У цьому випадку проводиться виконання блоку коду асоційованого
з цим catch ( укладеного у фігурні дужки) . Далі якщо код в цьому блоці
завершується нормально , то і звістка оператор try завершується нормально і керування
передається на оператор (вираз) наступний за закриваючою фігурною дужкою
останнього catch асоційованого з даним try . Якщо код в catch завершується
нештатно , то і весь try завершується нештатно з тієї ж причини .
• якщо виникла виняткова ситуація , яка клас якої не вказаний як
аргумент , ні в одному catch , то виконання всього try завершується нештатно .
Якщо в послідовності операторів можуть виникнути як помилки введення / виводу так і
помилки арифметичних обчислень , зовсім немає потреби поміщати різні фрагменти
коду в різні оператори try {} catch () { } . Досить забезпечити кілька catch ( ) для
різних типів винятків.
51.Конструкція try-catch-finally
Оператор finally призначений для того , щоб забезпечити гарантоване виконання
деякого фрагмента коду.Послідовність виконання такої конструкції буде наступною : Якщо оператор try виконаний нормально , то буде виконаний блок finally . У свою чергу , якщо оператор finally виконується нормально , то весь оператор try виконується нормально . Якщо відбувається передчасне закінчення виконання блоку finally , вістка оператор try завершується попередньо з тих же причин .
• існує оператор catch , який перехоплює даний тип винятку , відбувається
виконання пов'язаного з catch блоку.- Якщо блок catch виконується нормально , то виконується блок finally
• в свою чергу якщо блок finally завершується нормально , то весь try завершується
нормально .
• Якщо finally завершується попередньо , то і весь оператор try завершується
попередньо з тієї ж причини .
- Якщо блок catch завершується ненормально , то виконується блок finally
• в свою чергу , якщо блок finally завершується нормально , то оператор try
завершується не нормально , з тієї ж причини, з якої не нормально
завершився блок catch
• якщо блок finally завершується ненормально , то весь блок try завершується
ненормально , з тієї ж причини , що і блок finally
• в списку операторів catch чи не знаходиться такого , який обробив б виняток. Все одно виконується блок finally . У цьому випадку , якщо
- Finally завершиться нормально , весь try завершиться не нормально з тієї ж причини
по якій було порушено виконання try .
- Finally завершиться ненормально , то try завершиться ненормально з тієї ж причини ,
по якій ненормально завершився finally
Якщо оператор try завершився нормально , то виконається блок finally . І якщо
• блок finally завершиться нормально , то весь try завершиться нормально
• блок finally завершиться не нормально , то весь try завершиться не нормально , з тієї причини.Слід звернути увагу , що при використанні конструкції finally , блок коду
асоційований з ним буде виконуватись завжди . Якщо під час обробки виняткової
ситуації , виникне нова виняткова ситуація , то виняткова ситуація , яка
послужила першопричиною буде втрачена .приклад застосування конструкції try - catch - finally .
try { byte [] buffer = new byte [ 128 ] ; FileInputStream fis = new FileInputStream ( " file.txt " ) ; while ( fis.read ( buffer )> 0 ) { ... Обробка даних}} catch ( IOException es ) { ... Обробка винятки ...} finally { fis.flush (); fis.close ();}
Приклад застосування оператора
return :try { ... return 0 ;}catch ( MyException ex ) { ...
System.out.println ( " Exception " ) ; return -1 ;}finally {
...
System.out.println ( " Finally " ) ;
}