Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java.doc
Скачиваний:
5
Добавлен:
17.04.2019
Размер:
261.63 Кб
Скачать

Виключні ситуації в java

Виключна ситуація в java – це деякий об’єкт, який описує певний винятковий стан, що виник в деякій частині програмного коду. Якщо виникає деяка виключна ситуація, то середовища виконання java породжує деякий клас Exception. Цей об’єкт пересилається в блок коду, який обробляє виключну ситуацію. Виключні ситуації можуть генеруватися програмістом самостійно. Для того, щоб повідомити про деякі позаштатні ситуації.

До механізму обробки виключних ситуацій в java належать 5 ключових слів:

  1. try

  2. Cath

  3. Throw

  4. throws

  5. finaly

схема роботи має наступний вигляд:

1. програміст намагається виконати блок коду, в якому потенційно виникнути виключна ситуація. (try)

2. В залежності від того, чи виникла ця ситуація чи ні, ви намагаєтесь її перехопити, (блок Cath)

3. іноді необхідно виконати певні дії не залежно від того виникла виключна ситуація чи ні (finaly).

Загальний синтаксис:

Try

{

// блок, в якому потенційно воже виникнути виключна ситуація

} catch (тип виключної ситуації)

{

// що робити при цьому

}

Finaly {дії, які обов’язково треба виконати незалежно від виникнення.}

При цьому вважається, що виключних ситуацій в середині блоку 1 може бути декілька, тому блоків catch також може бути декілька.

Основне призначення блоку try – це спроба виконати деяку частину коду, в якому може виникнути помилка. Основне призначення блоку cath – це продовження виконання програми при виникненні помилки. В інших мовах програмування при виникненні виключної ситуації програма одразу завершується. Для одного блоку try може існувати довільна кількість блоків cath, оскільки один і той самий код, що розміщений в блоці try може генерувати різні види виключних ситуацій. Найбільш спеціалізовані блоки обробки виключних ситуацій повинні йти першими.

Try {

} cath (IOException)

{……}

Cath (Exception e);

Блок finaly призначений для виконання певних дій незалежно від того, виникла виключна ситуація чи ні. Блок надзвичайно корисний в таких випадках як закриття файлу, закриття потоків, закриття конектів або зв’язків з базами даних, з інших сервісів т.і.

Throw – оператор призначений для створення деякої виключеної ситуації користувачем. Для того, щоб ним скористатись необхідно мати деякий об’єкт нащадок класу throw який можна отримати в блоці cath або створити його самостійно з допомогою операції new. Приклад:

classMyExec

{

Public static void main(…)

{

Int i=0;

Try{

Throw new NullPointerException(“Hello”);

I=i+1;

} cath (nullPointerException)

{System.out.println(e+”word”);}

}

}

При досягнення оператора throw виконання програми припиняється, і здійснюється перевірка найближчого блоку cath чи зможе він обробити дану виключну ситуацію. Якщо найближчий блок cath не може обробити цю виключну ситуацію, то здійснюється пошуку наступних блоків cath по ієрархії вкладеності блоків поки не дойдем до найвищого рівня. При розробці thre - cath блоків необхідно намагатись зробити їх як умога менше. Менше коду в блоці try.

Throws. Якщо деякий метод класу може породжувати певні виключні ситуації, але сам не обробляє ці виключні ситуації, то про таку свою негарну поведінку він повинен оголосити з допомогою ключового слова throws. Синтаксис:

Моди тип ім’я(параметри) throws типExc1, Exc2; Приклад:

Class ThrowsDemo{

Static void proc() throws IllegalAccesException

{

Throw new IllegalAccesException(“Hello”);

}

Public static void man(String[arg])

Try{

Proc();

} catch(Exception e)

{System.out.printll(e+”Hello”);}

}

}

Створення виключних ситуацій вручну корисне в таких випадках:

  1. в нас створена власна структура виключних ситуацій.

  2. якщо необхідно вийти за межі декількох операторних дужок одразу.

Пакети

При написанні простих програм ми не використовували таке поняття як пакет. Іноді виникають ситуації, коли нам необхідно створювати цілі бібліотеки класів, тобто пакети. Пакети (бібліотека класів) – це одночасно механізм управління іменами класів а також механізм контролю видимості. Пакети – в мові java використовують систему імен каталогів, тобто всі класи, які належать до певного пакету повинні знаходитись в каталозі, який має назву таку як і ім’я пакету. Можна створювати навіть ієрархії пакетів. Для цього необхідно, щоб пакети розділялись крапками. Для того, щоб деякий клас належав до деякого пакету необхідно щоб найпершим оператором був оператор «package ім’я». після компіляції всі класи нашого проекту, які відносились до одного і того ж самого пакету будуть розміщені всередині однієї директорії. Для вказання того, що розроблювальний нами клас належить до деякого пакету 2, який являється під пакетом пакету 1 необхідно використати структуру: Package пакет1.пакет2.

Розглянемо механізм управління іменами класів. В деякому пакеті всі імена класів повинні бути унікальними. Якщо необхідно створити два класи з однаковим іменем, необхідно, щоб вони знаходились в різних пакетах.

Механізм контролю видимості призначений для визначення того, чи буде клас один доступний для класу два, якщо їхні коди будуть розміщені по різному, а також з врахуванням модифікаторів.

Розглянемо основні модифікатори для класів:

Private

friendly

protected

public

В середині класу

+

+

+

+

Клас в тому ж пакеті

-

+

+

+

Незалежний клас в тому ж пакеті

-

+

-

+

Клас в іншому пакеті

-

-

+

+

Незалежний класі іншому пакеті

-

-

-

+

В зв’язку з тим, що починаючи з деякого моменту часу програми на java стали займати багато місця на диску (в основному це аплети), а також збільшувався час завантажування окремих файлів в проекті, було введено спеціальний тип архівів «jar-apx», які дозволили зменшити ці проблеми. Файли java – це спеціальні платформо-незалежні архіви, які містять в собі всі файли проекту (початковий код програми, малюнки, звуки, бібліотеки т.і. які необхідні для роботи проекту). Однак ці архіви є платформо-незалежні. Дані архіви створені на використанні стандартного алгоритму ZLIB, однак відмінністю від простих ZIP архівів є те, що вони є платформо-незалежні. Поява java архівів дозволило передавати по мережі єдиний файл для виконанні його на машині клієнта. Створення JAR архіву з допомогою командної строчки можна здійснити, використовуючи утиліту JAR, яка входить в склад jdk. «jar cf0 Myjar *.class *java image audio». В результаті створення такої команди буде створений архів Myjar, в якому будуть включені всі відкомпільовані класи, початкові коди проекту а також папки image, audio. Для використання класів, які знаходяться всередині jar архіва, необхідно ввести параметр “archive” тега “applet”.

<applet code = second.class archive = “Myjar”

Width = “203” height = “200”>

<applet>

В java існує велика кількість пакетів, в яких розміщені класи для роботи з апаратним забезпеченням, операційними системами т.і.

Розглянемо основні пакети java.

  1. пакет «java.io» – даний пакет java являється стандартною бібліотекою класів вводу-виводу. В середині даного пакету розміщені всі абстракції та класи, які дозволяють працювати з потоками. Також в середині даного пакету визначити класи String та StringBuffer.

  2. пакет «java.until» - даний пакет основним чином служить для різних корисних функцій, які неможливо віднести до інших пакетів. Тут присутні класи для роботи з датами, часу, хеш-таблицями, колекціями, генератор випадкових чисел т.і.

  3. пакет «java.net» - оскільки java являється мереженою мовою програмування, то в ній надзвичайно багато класів, які призначені для роботи з віддаленими ресурсами, сонетами, протоколами т.і. Саме завдяки доскональної розроблені цього пакету java так сильно поширилась в Інтернеті.

  4. пакет «java.awt» - даний пакет призначений для розміщення в ньому класів, що забезпечували створення інтерфейсу користувача. Тут присутні класи кнопок, меню, фреймів, випадаючи списки, панелі і.т.д.

  5. пакет «java.applet» - даний пакет являється одним з найменшим в java, однак один з найбільш використовуваних. В середині даного пакету розміщені клас applet, який являється основою для розробки графічних додатків. Оскільки пакети «java.awt» і «java.applet» являлись не повністю платформ о незалежними, то з часом компанія САМ замінила ці пакети на один пакет «javax.swing»

  6. пакет «javax.swing» - даний пакет включає в собі всі перероблені класи пакету awt, та пакету applet, а також класи для нових технологій «серверів» та «jsp сторінки».

  7. пакет «java.sql» - в середині даного пакету розміщено основні класи для роботи з серверами баз даних.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]