Работата с изключенията в Java е един от мощните механизми за обработка на специфични грешки, които възникват в кодова последователност по време на изпълнение. Изключение не е нищо друго освен грешка по време на изпълнение, която нарушава нормалния поток на приложението.
Обикновено се появява в парче код и когато го прави, се създава обект, представляващ това изключение и хвърлен в метода, който го е причинил. В резултат на това програмата или приложението са прекъснати, което води до прекратяване на приложението, което не се препоръчва. Ето защо тези изключения трябва да се обработват и тук се появява механизмът за обработка на изключенията.
Има два вида изключения, които съществуват в Java - Проверено и Непроверено изключение. В тази статия ще обсъдим подробно какво е проверено и непроверено изключение и кога да ги използваме, и накрая, ще видим разликата между двете.
Това са изключенията, които се проверяват и обработват по време на компилиране. Java дефинира няколко класа изключения вътре в стандартния пакет java.lang, и най-често срещаните изключения са подкласовете от стандартния тип RuntimeException.
Тези изключения, които се случват в области извън непосредствения контрол на програмата, са известни като проверени изключения. Ако метод хвърля проверено изключение по време на компилиране, което не може да се справи сам, тогава трябва да се справи с изключението в a улов блокирайте или декларирайте изключението, като използвате хвърля ключова дума, в противен случай тя ще даде грешка при компилация. Компилаторът изследва типа на обекта изключение за всеки хвърлям оператор и ако се показва проверен, компилаторът проверява изходния код, за да се увери, че изключението се обработва в метода, където е хвърлен или деклариран, така че да може да се обработва допълнително.
Всички изключения, описани от изключение които са директните му подкласове с изключение на RuntimeException се наричат проверени изключения. Кога да използвам проверено изключение? Можете да изберете проверено изключение, когато знаете какво точно да правите, когато изключение възниква или когато шансовете за неуспех са повече. Някои примери за проверени изключения в Java библиотеката включват IOException, DataAccessException, IllegalAccessException, InterruptException, ClassNotFoundException, InvocationTargetException и т.н..
Това са изключенията, които не се проверяват по време на компилиране. Непроверено изключение представлява условие, което обикновено отразява грешките в логиката на програмата и което не може да бъде възстановено по време на изпълнение.
Казано по-просто, непроверено изключение е изключение, което не се хваща в опитай да хванеш блок. Не е необходимо да бъдат хващани изрично. В действителност, когато се случи непроверено изключение, Java обработва изключението автоматично. Непроверени изключения се появяват най-вече поради грешки в програмирането, като например при достъп до елемент извън свързване на масив или метод за достъп до нулев обект. В Java всички изключения под подлежащи на подхвърляне са проверени изключения, докато изключенията са директни подкласове на грешка и RuntimeException са непроверени изключения.
Най-добрата част от непроверено изключение е, че не намалява четенето на кода, като същевременно поддържа клиентския код чист. Някои примери за непроверени изключения включват ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException и т.н..
Проверено и непроверено изключение са двата вида изключения, съществуващи в Java, за да се осигури нормален поток на приложението. И двете служат на една и съща цел, която е да се справят с изключения в Java и въпреки че няма разлика във функционалността, няма единно правило за определяне кога да се използва проверено и кога да се използва непроверено изключение. Проверено изключение е изключение, което се проверява по време на компилиране, докато непроверено изключение е това, което не се проверява по време на компилиране..
Проверено изключение се отнася до невалидните сценарии, възникващи извън непосредствения контрол на програмата, докато непроверено изключение се отнася до грешките в програмата или грешки в логиката на програмата, които не могат да бъдат възстановени по време на изпълнение.
Ако метод хвърля проверено изключение, компилаторът ще провери дали методът обработва това изключение с помощта на пробния блок или ще посочи изключението с помощта на ключовата дума хвърля. Ако методът не предоставя код за обработка, той ще покаже грешка при компилация. Напротив, програмата се компилира добре, защото компилаторът не проверява за непроверени изключения по време на компилиране.
Изключенията, които не са получени от RunTimeException, често се обработват, докато по време на изпълнение изключенията се обработват рядко. Проверено изключение се случва, когато шансовете за неуспех са твърде високи. Непровереното изключение, от друга страна, възниква най-вече поради грешки в програмирането. Всички изключения по класове RuntimeException и Error са непроверени изключения, докато всичко останало под подлежащи на прехвърляне са проверени изключения.
Някои примери за проверени изключения са IOException, DataAccessException, IllegalAccessException, InterruptException, ClassNotFoundException и други. Примерите за непроверени изключения включват NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException и т.н..
Проверено и непроверено изключение са двата вида изключения, които съществуват в Java. Въпреки че функционалността е еднаква и за двете изключения, те имат справедлив дял от разликите. Основната разлика между проверените и непроверените изключения е, че първата се проверява от съставителя, докато втората избягва известието за компилатора. Изключенията, които се проверяват и обработват по време на компилиране, са проверени изключения, докато изключенията, които не се проверяват и обработват по време на компилиране, са непроверени изключения. Тази статия обяснява какво е проверено и какво е непроверено изключение, кога да ги използвате и обяснява разликата между двете.