Різниця між помилкою та винятком у Java

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 6 Травень 2024
Anonim
Бібліотека. Java + Spring Boot. N + 1 issue (Урок 11)
Відеоролик: Бібліотека. Java + Spring Boot. N + 1 issue (Урок 11)

Зміст


"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.

Висновок:

Винятки становлять результати помилок, допущених при кодуванні програми, а помилки - результат неправильного функціонування системи