Разлика между грешка и изключение в Java

Автор: Laura McKinney
Дата На Създаване: 2 Април 2021
Дата На Актуализиране: 6 Може 2024
Anonim
Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]
Видео: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]

Съдържание


„Throwable“ действа като корен за йерархията на грешки и изключения на Java. „Грешка“ е критично условие, което не може да бъде обработено от кода на програмата. „Изключение“ е изключителната ситуация, която може да се справи с кода на програмата. Значителната разлика между грешка и изключение е, че грешка се причинява поради липса на системни ресурси и изключение е причинен заради кода ви. Нека изучим други разлики между грешка и изключение, заедно със сравнителна диаграма.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениегрешкаизключение
ОсновенГрешка е причинена поради липса на системни ресурси.Изключение се получава заради кода.
възстановяванеГрешка е невъзстановима.Изключение е възстановимо.
Ключови думиНяма начин да се справи с грешка от програмния код.Изключенията се обработват с три ключови думи „пробвам“, „хващам“ и „хвърлям“.
Последствия
Когато бъде открита грешката, програмата ще бъде прекратена необичайно.Като се установи изключение, той се хвърля и хваща съответно ключовите думи „хвърляне“ и „улов“.
Видове Грешките се класифицират като непроверен тип.Изключенията се класифицират като проверен или непроверен тип.
Пакет В Java грешките са дефинирани "java.lang.Error" пакет.В Java изключения са дефинирани в "java.lang.Exception".
примерOutOfMemory, StackOverFlow.Проверени изключения: NoSuchMethod, ClassNotFound.
Непроверени изключения: NullPointer, IndexOutOfBounds.


Определение за грешка

грешка“Е подклас на вградения клас„ Throwable “. Грешките са критичните условия, които възникват поради липсата на системните ресурси и не могат да бъдат обработвани от кода на програмата. Грешките не могат да бъдат възстановени по никакъв начин, защото не могат да бъдат създадени, хвърлени, хванати или отговори. Грешките са причинени поради катастрофална повреда, която обикновено не може да бъде обработена от вашата програма.

Грешките винаги са от непроверен тип, тъй като компилаторът няма знания за появата му. Грешки винаги се появяват в средата на изпълнение. Грешката може да се обясни с помощта на пример, програмата има грешка при преливане на стека, грешка в паметта или грешка в системна катастрофа, този вид грешка се дължи на системата. Кодът не носи отговорност за такива грешки. Последицата от появата на грешката е, че програмата се прекратява необичайно.

Определение за изключение

„Изключение“ е също подклас на вграден клас „Throwable“. Изключение правят изключителните условия, които възникват в среда на изпълнение. В повечето случаи изключенията са причинени от кода на нашата програма. Но изключенията могат да се обработват от самата програма, тъй като изключенията могат да се възстановят. Изключенията се обработват чрез използване на три ключови думи „пробвам“, „хващам“, „хвърлям“. Синтаксисът на писане на изключение е:


опитайте {// напишете кода си тук} Catch (Тип изключение) {// напишете кода си тук}

В горния код кодът, написан в пробния блок, е кодът, който искате да наблюдавате за изключение. Ако изключението се случи в пробен блок, то се хвърля с помощта на ключовата дума "хвърляне". Изхвърленото изключение може да бъде уловено от блока „улавяне“ на горния код. „Тип изключение“ е типът на възникналото изключение.

С прости думи можем да кажем, че грешките, възникнали поради неправилния код, се наричат ​​изключения. Например, ако не е намерен заявен клас или не е намерен заявен метод. Тези видове изключения се дължат на кода в програмата; системата не носи отговорност за тези видове изключения. Изключенията се класифицират като „проверени“ и „непроверени“. Непроверените изключения не са в познанието на компилатора, тъй като се случват по време на изпълнение, докато компилаторът има знания за проверените изключения, тъй като те са известни за компилатора по време на компилиране.

  1. Грешка се появява само когато системните ресурси са дефицитни, докато има изключение, ако кодът има някакъв проблем.
  2. Грешка никога не може да бъде възстановена, докато изключение може да бъде възстановено, като се подготви кодът за обработка на изключението.
  3. Грешка никога не може да бъде обработена, но изключение може да бъде обработено от кода, ако кодът, който хвърля изключение, е написан в блок за опит и хващане.
  4. Ако е възникнала грешка, програмата ще бъде прекратена необичайно. От друга страна, ако се случи изключението, програмата ще хвърли изключение и тя се обработва с помощта на блока за опит и улов.
  5. Грешките са от непроверен тип, т.е. грешката не е в познанието на компилаторите, докато изключение е класифицирано като проверено и непроверено.
  6. Грешките са дефинирани в пакета java.lang.Error, докато изключение е дефинирано java.lang.Exception.

Заключение:

Изключения са резултатите от грешки, допуснати при кодирането на програмата, а грешките са резултат от неправилното функциониране на системата