Рекомендуємо, 2024

Вибір Редакції

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

"Throwable" виступає в якості кореня для помилок Java і ієрархії виключень. "Помилка" - критична умова, яка не може бути оброблена кодом програми. "Виняток" - це виняткова ситуація, яка може бути оброблена кодом програми. Істотною відмінністю між помилкою та виключенням є те, що виникла помилка через відсутність системних ресурсів, а виняток викликаний вашим кодом. Давайте вивчимо інші відмінності між помилками і виключенням разом з діаграмою порівняння.

Діаграма порівняння

Основа для порівнянняПомилкаВиняток
ОсновнийВиникла помилка через відсутність системних ресурсів.Виняток викликається кодом.
ВідновленняПомилка неможлива.Виняток може бути відшкодовано.
Ключові словаНемає засобів для обробки помилки програмним кодом.Винятки обробляються за допомогою трьох ключових слів "try", "catch" і "throw".
Наслідки
Оскільки виявлена ​​помилка, програма буде аномально завершена.Як виняток виявляється, він викидається і вловлюється за допомогою ключових слів "кидати" і "уловлювати" відповідно.
ТипиПомилки класифікуються як неперевірені.Винятки класифікуються як перевірені або неперевірені.
ПакетУ Java помилки визначаються пакетом "java.lang.Error".У Java винятки визначаються в "java.lang.Exception".
ПрикладOutOfMemory, StackOverFlow.Визначені винятки: NoSuchMethod, ClassNotFound.
Неперевірені винятки: NullPointer, IndexOutOfBounds.

Визначення помилки

Помилка ” - це підклас вбудованого класу “Throwable”. Помилки є критичними умовами, які виникають через відсутність системних ресурсів, і не можуть бути оброблені кодом програми. Помилки не можуть бути відновлені будь-якими засобами, тому що вони не можуть бути створені, кинуті, зафіксовані або відповіді. Помилки виникають через катастрофічну помилку, яку зазвичай не може обробляти ваша програма.

Помилки завжди мають неперевірений тип, оскільки компілятор не має ніяких знань про його виникнення. Помилки завжди відбуваються в середовищі виконання. Помилку можна пояснити за допомогою прикладу, в програмі є помилка переповнення стека, помилка пам'яті або помилка системного збою, така помилка пов'язана з системою. Код не несе відповідальності за такі помилки. Наслідком виникнення помилки є те, що програма припиняється ненормально.

Визначення винятку

“Виняток” - це також підклас вбудованого класу “Throwable”. Виняток становлять виняткові умови, які виникають у середовищі виконання. Більшість випадків винятків викликані кодом нашої програми. Але винятки можуть оброблятися самою програмою, оскільки винятки можуть бути відновлені. Винятки обробляються за допомогою трьох ключових слів “try”, “catch”, “throw”. Синтаксис написання винятку:

 try {// напишіть код тут} Catch (тип виключення) {// напишіть код тут} 

У наведеному вище коді код, написаний у блоці try, є кодом, який ви хочете контролювати за винятком. Якщо виключення відбувається в блоці try, воно викидається за допомогою ключового слова "throw". Виключене виняток може бути виявлено блоком "catch" вищевказаного коду. "Тип винятку" - тип винятку.

Простими словами можна сказати, що помилки, що сталися через неправильний код, називаються винятками. Наприклад, якщо запитаний клас не знайдено, або запитаний метод не знайдено. Ці види винятків пов'язані з кодом програми; система не несе відповідальності за ці види виключень. Винятки класифікуються як "перевірені" і "непроверені". Неперевірені винятки не знають компілятора, оскільки вони виникають під час виконання, тоді як компілятор має знання про перевірені виключення, оскільки вони відомі компілятору під час компіляції.

Ключові відмінності в помилках і виключеннях

  1. Помилка виникає лише тоді, коли системні ресурси дефіцитні, тоді як виняток викликається, якщо код має певні проблеми.
  2. Помилка ніколи не може бути відновлена, тоді як виняток може бути відновлений шляхом підготовки коду для обробки винятку.
  3. Помилка ніколи не може бути оброблена, але виняток може бути оброблений кодом, якщо код, який кидає виняток, записується всередині блоку try і catch.
  4. Якщо сталася помилка, програма буде розірвана. З іншого боку, якщо виникає виняток, програма кине виняток, і вона обробляється за допомогою блоку try і catch.
  5. Помилки неперевірені, тобто помилки не знають компіляторів, тоді як виняток класифікується як перевірений і неперевірений.
  6. Помилки визначаються в java.lang.Error пакет, тоді як виняток визначено java.lang.Exception.

Висновок:

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

Top