Архітектура винятків
Як і всі об'єкти в Java, виключення також успадковуються і мають ієрархічну структуру. Кореневим елементом всіх помилок, що викидаються в цій мові програмування є клас java.lang.Throwable. Від нього успадковуються два види — Error і Exception.
Error — оповіщає про критичні помилки і являє собою не перевірили виключення Java. Перехоплення і обробка таких даних у більшості випадків відбувається на стадії розробки і не потребує впровадження в код кінцевого програми. Найбільш часто використовуваним класом для створення і аналізу винятків служить Exception. Який, у свою чергу, ділиться на кілька гілок, в тому числі RuntimeException. До RuntimeException відносяться виключення часу виконання, тобто відбуваються під час роботи програми. Всі успадковані від нього класи є непровіряємими.
Часто зустрічаються виключення
В Java винятку, список яких представлений нижче, використовуються найбільш часто, тому варто описати кожен з них детальніше:
ArithmeticException. Сюди входять помилки пов'язані з арифметичними операціями. Найяскравіший приклад — ділення на нуль.
ArrayIndexOutOfBoundsException — звернення до номеру елемента масиву, який перевищує загальну його довжину.
ArrayStoreException — спроба присвоїти елементу масиву несумісного типу.
ClassCastException — спроба неправильного приведення одного типу до іншого.
IllegalArgumentException — використання неправильного аргументу у виклику методу.
NegativeArraySizeException — виняток при створенні масиву від'ємного розміру.
NullPointerException — неправильне використання посилання на значення null.
NumberFormatException — виникає при невірному перетворення рядка в число.
UnsupportedOperationException — операція не підтримується. Дані приклади являють собою не перевірили типи винятків Java. А ось так виглядають перевіряються:
ClassNotFoundException — клас не виявлено.
IllegalAcccessException — обмеження доступу до класу.
InterruptedException — переривання роботи потоку. o
NoSuchFieldException — не існує потрібне поле.
Інтерпретація винятків
Говорячи про часто зустрічаються винятки потрібно відзначити, що їх інтерпретація в ході розробки, може бути сприйнята неправильно. Далі йде невеликий список, що пояснює більш докладно, коли може виникнути непередбачена ситуація.
NullPointerException. Самим першим випадком, коли виникає виняток, є звернення до посилання на об'єкт, яка дорівнює null. Також це поширюється на методи нульового екземпляра класу. NullPointerException може бути кинутий і в разі отримання довжини масиву дорівнює null. Уникнути таких ситуацій допоможе періодична перевірка об'єктів на значення null. ArrayIndexOutOfBoundsException. Будь-яка програма не може існувати без використання масивів. Відповідно, часте звернення до них може породжувати і помилки. Виникає виняток, коли розробник намагається звернутися до елементу масиву, який відсутній в списку індексів. Наприклад, запитувана значення вище довжини або менше нуля. Дуже часто з'являється в результаті того, що рахунок у масиві починається з нуля.
