- Обработка на изключения
- Предимство на обработката на изключения
- Йерархия на класовете за изключения
- Видове изключения
- Пример за изключение
- Сценарии, при които може да възникне изключение
The Обработка на изключения в Java е един от мощните механизъм за обработка на грешки по време на изпълнение така че да може да се поддържа нормалният поток на приложението.
В този урок ще научим за изключенията на Java, техните типове и разликата между проверени и непроверени изключения.
директория в linux команди
Какво е изключение в Java?
Речник Значение: Изключение е необичайно състояние.
В Java изключение е събитие, което нарушава нормалния поток на програмата. Това е обект, който се хвърля по време на изпълнение.
Какво е обработка на изключения?
Exception Handling е механизъм за обработка на грешки по време на изпълнение, като ClassNotFoundException, IOException, SQLException, RemoteException и др.
Предимство на обработката на изключения
Основното предимство на обработката на изключения е за поддържане на нормалния поток на приложението . Изключението обикновено прекъсва нормалния поток на приложението; ето защо трябва да обработваме изключения. Нека разгледаме сценарий:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Да предположим, че има 10 израза в програма на Java и изключение възниква при израз 5; останалата част от кода няма да бъде изпълнена, т.е. изрази от 6 до 10 няма да бъдат изпълнени. Въпреки това, когато извършим обработка на изключения, останалите оператори ще бъдат изпълнени. Ето защо използваме обработка на изключения Java .
Знаеш ли?
|
Йерархия на Java Exception класове
Класът java.lang.Throwable е основният клас на йерархията на Java Exception, наследен от два подкласа: Exception и Error. Йерархията на класовете Java Exception е дадена по-долу:
Видове Java изключения
Има основно два вида изключения: проверени и непроверени. Грешка се счита за непроверено изключение. Въпреки това, според Oracle, има три вида изключения, а именно:
- Отметнато изключение
- Неотметнато изключение
- Грешка
Разлика между проверени и непроверени изключения
1) Отметнато изключение
Класовете, които директно наследяват класа Throwable, с изключение на RuntimeException и Error, са известни като проверени изключения. Например IOException, SQLException и др. Проверените изключения се проверяват по време на компилиране.
2) Непроверено изключение
Класовете, които наследяват RuntimeException, са известни като непроверени изключения. Например ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException и др. Непроверените изключения не се проверяват по време на компилиране, но се проверяват по време на изпълнение.
3) Грешка
Грешката е непоправима. Някои примери за грешки са OutOfMemoryError, VirtualMachineError, AssertionError и др.
Ключови думи за изключение на Java
Java предоставя пет ключови думи, които се използват за обработка на изключението. Следната таблица описва всеки.
Ключова дума | Описание |
---|---|
опитвам | Ключовата дума 'try' се използва за указване на блок, където трябва да поставим код за изключение. Това означава, че не можем да използваме try block самостоятелно. Блокът try трябва да бъде последван от catch или finally. |
улов | Блокът 'catch' се използва за обработка на изключението. Той трябва да бъде предшестван от блок try, което означава, че не можем да използваме само блок catch. Може да бъде последвано от окончателно блокиране по-късно. |
накрая | Блокът 'finally' се използва за изпълнение на необходимия код на програмата. Изпълнява се независимо дали е обработено изключение или не. |
хвърлям | Ключовата дума 'throw' се използва за генериране на изключение. |
хвърля | Ключовата дума 'throws' се използва за деклариране на изключения. Той уточнява, че може да възникне изключение в метода. Не прави изключение. Винаги се използва със сигнатура на метода. |
Пример за обработка на изключения в Java
Нека видим пример за обработка на изключения в Java, в който използваме оператор try-catch за обработка на изключението.
JavaExceptionExample.java
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } }Тествайте сега
Изход:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
В горния пример 100/0 предизвиква ArithmeticException, което се обработва от блок try-catch.
Често срещани сценарии на Java изключения
Дадени са някои сценарии, при които могат да възникнат непроверени изключения. Те са както следва:
1) Сценарий, при който възниква ArithmeticException
Ако разделим произволно число на нула, възниква ArithmeticException.
int a=50/0;//ArithmeticException
2) Сценарий, при който възниква NullPointerException
Ако имаме нулева стойност в някоя променлива , извършването на каквато и да е операция върху променливата хвърля NullPointerException.
String s=null; System.out.println(s.length());//NullPointerException
3) Сценарий, при който възниква NumberFormatException
Ако форматирането на която и да е променлива или число не съответства, това може да доведе до NumberFormatException. Да предположим, че имаме a низ променлива, която има знаци; преобразуването на тази променлива в цифра ще предизвика NumberFormatException.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) Сценарий, при който възниква ArrayIndexOutOfBoundsException
Когато даден масив надвиши размера си, възниква изключение ArrayIndexOutOfBoundsException. може да има други причини за възникване на ArrayIndexOutOfBoundsException. Обмислете следните твърдения.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Индекс на изключения в Java
- Java Try-Catch Блок
- Java Multiple Catch Block
- Java вложен опит
- Java Finally Block
- Ключова дума за хвърляне на Java
- Разпространение на изключение на Java
- Java хвърля ключова дума
- Java Throw срещу Throws
- Java Final срещу Finally срещу Finalize
- Обработка на изключения в Java с отмяна на метода
- Персонализирани изключения на Java