Сравнителна таблица
Основа за сравнение | грешка | изключение |
---|---|---|
Основен | Възникна грешка поради липса на системни ресурси. | Заради кода е причинено изключение. |
възстановяване | Грешка е невъзстановима. | Изключение се възстановява. |
Ключови думи | Няма начин да се обработи грешка от програмния код. | Изключенията се обработват, като се използват три ключови думи "try", "catch" и "throw". |
Последствия | Тъй като грешката е открита, програмата ще се прекрати ненормално. | Тъй като се открива изключение, то се хвърля и улавя от ключовите думи "хвърляне" и "улов" съответно. |
Видове | Грешките се класифицират като непроверен тип. | Изключенията се класифицират като проверени или непроверени тип. |
Пакет | В Java грешките се дефинират от пакета java.lang.Error. | В Java, изключенията са дефинирани в "java.lang.Exception". |
пример | OutOfMemory, StackOverFlow. | Проверени изключения: NoSuchMethod, ClassNotFound. Непроверени изключения: NullPointer, IndexOutOfBounds. |
Определение за грешка
“ Грешка ” е подклас на вградения клас “Throwable”. Грешките са критичните условия, които възникват поради липсата на системни ресурси и не могат да бъдат обработвани от кода на програмата. Грешките не могат да бъдат възстановени по какъвто и да е начин, защото те не могат да бъдат създадени, хвърлени, хванати или отговори. Грешки се причиняват от катастрофалния неуспех, който обикновено не може да се обработи от вашата програма.
Грешките винаги са от непроверен тип, тъй като компилаторът няма никакви познания за неговото възникване. Грешките винаги се появяват в средата на изпълнение. Грешката може да бъде обяснена с помощта на пример, програмата има грешка на препълване на стека, грешка в паметта или грешка в системата, този вид грешка се дължи на системата. Кодът не носи отговорност за такива грешки. Последицата от възникването на грешката е, че програмата се прекратява необичайно.
Определение за изключение
“Exception” е подклас от вграден клас “Throwable”. Изключения са изключителните условия, които се случват в среда на изпълнение. По-голямата част от изключенията са причинени поради кода на нашата програма. Но изключенията могат да се обработват от самата програма, тъй като изключенията са възстановими. Изключенията се обработват чрез три ключови думи „опитайте“, „хвана“, „хвърли“. Синтаксисът на писане на изключение е:
try {// тук напишете кода си} Catch (Exception type) {// напишете кода си тук}
В горния код кодът, написан в блока try, е кодът, който искате да наблюдавате за изключението. Ако изключението се случи в блок за опит, то се изхвърля с помощта на ключовата дума "throw". Изхвърленото изключение може да бъде уловено от блока "catch" от горния код. “Тип на изключение” е типът на възникналото изключение.
С прости думи можем да кажем, че грешките, възникнали поради неправилния код, се наричат изключения. Например, ако не е намерен искан клас или не е намерен заявен метод. Тези видове изключения се дължат на кода в програмата; системата не носи отговорност за тези видове изключения. Изключенията се класифицират като „проверени“ и „непроверени“. Неконтролираните изключения не са в знанието на компилатора, тъй като те се случват по време на изпълнение, докато компилаторът има познания за проверените изключения, тъй като те са известни на компилатора по време на компилацията.
Ключови разлики в грешките и изключенията
- Възниква грешка, само когато системните ресурси са дефицитни, докато при код има някакъв проблем.
- Грешка никога не може да бъде възстановена, докато изключение може да бъде възстановено чрез подготвяне на кода за обработка на изключението.
- Грешка никога не може да бъде обработена, но изключение може да бъде обработено от кода, ако кодът, хвърлящ изключение, е записан в блока try и catch.
- Ако възникне грешка, програмата ще бъде прекратена необичайно. От друга страна, ако възникне изключение, програмата ще хвърли изключение и ще бъде обработено чрез блока try и catch.
- Грешките са с непроверен тип, т.е. грешката не е в знанието на компилаторите, докато изключението се класифицира като проверено и непроверено.
- Грешките се дефинират в java.lang.Error пакет, докато изключението е определено java.lang.Exception.
Заключение:
Изключения са резултатите от грешки, извършени при кодирането на програмата, а грешките са резултат от неправилното функциониране на системата