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

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

Різниця між кидками і кидками в Java

Кидок і кидки - це ключові слова, які використовуються в обробці виключень. Ключове слово throw використовується для передачі екземпляру винятку, створеного програмістом, до JVM вручну. Ключове слово throws, що використовується для передачі відповідальності за обробку винятку, відбулося в методі для методу, що викликає. Основна відмінність між кидком і кидками полягає в тому, що ключове слово throw використовує об'єкт виключення, тоді як ключове слово throws використовує ім'я класів виключень.

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

Основа порівняннякинутикидає
ОсновнийКлючове слово throw передає створений нами об'єкт виключення до JVM вручну.Ключове слово throws використовується для делегування відповідальності за обробку винятків викликаючому методу.
Синтаксискидати Throwable-екземпляр;return_type method_name (параметр-список) кидає ExceptionClass_list
{
// тіло методу
}
Далі йдеЗа ключовим словом throw використовується об'єкт виключення.За ключовим словом throws йде список класів виключень, які можуть виникати в методі.
Кількість викинутих винятківКлючове слово throw може передати один примірник виключення.Ключове слово throws може оголосити кілька класів винятків, розділених комою.

Визначення кидка

Ключове слово " throw " використовується для передачі створеного нами екземпляра виключення JVM (Java Virtual Machine) вручну. Якщо "throw" не використовується для вилучення екземпляра виключення і виникає виняток, то система виконання часу внутрішньо викидає екземпляр виключення до JVM, і програма закінчується ненормально. Загальний вигляд ключового слова throw:

 throw Throwable_instance; 

Над Throwable_instance повинен бути об'єкт класу Throwable. Примітивні типи, такі як int, float або char і не кидаються екземпляр класу, не можуть бути викинуті за допомогою ключового слова throw.

Візьмемо приклад, щоб зрозуміти ключове слово throw.

 Тест класу {Public static void main (String [] args) {кидати нове ArithmeticException ("/ by zero"); }} 

У наведеному вище коді ключове слово throw викидає екземпляр класу Exception “ArithmeticException”. Якщо ключове слово throw не було використано тоді, метод main () створив би внутрішній об'єкт виключення, переданий JVM.

Точки, які слід пам'ятати про ключове слово throw:

  • Він передає об'єкт виключення вручну JVM.
  • Це найкраще використовувати для визначених користувачем виключень або спеціальних виключень.
  • Якщо пам'ять не виділена об'єкту виключення, що кидається ключовим словом throw, то виникає виняток часу виконання, NullPointerException.
  • Ключове слово throw припиняє виконання програми відразу після її виникнення. ми не можемо безпосередньо записати будь-яку операцію після оператора throw. Якщо ми пишемо будь-який стан безпосередньо після оператора throw, компілятор покаже помилку, недоступну операцію під час компіляції.
  • Тільки об'єкти класу Throwable можуть бути викинуті за допомогою ключового слова throw. Якщо викинутий об'єкт не є об'єктом класу Throwable, то виникає помилка часу компіляції «Знайдений несумісний тип. . необхідний java.lang.Throwable "

Примітка:

Ключове слово throw використовується в C ++, JAVA, C #, щоб вручну викинути виняток.

Визначення кидків

Ключове слово " throws " використовується для делегування відповідальності за обробку винятку, що стався в методі, до його методу виклику. Викликає метод відповідає за обробку винятку, це може бути будь-який інший метод або JVM. Він оголошує список класів виключень, які можуть виникати в методі.

Використання ключового слова throws переконує компілятор, що виняток, що стався в методі, повинен оброблятися методом викликає, отже, не відбувається помилка компіляції. Але, метод виклику повинен обробляти виняток або делегувати відповідальність за обробку винятку методом її ієрархії. Коли виникає виняток виконання, то навіть після використання ключового слова throws, це не заважає аномальному завершенню програми. Якщо метод викликає main (), за замовчуванням JVM обробляє виняток.

Загальна форма ключового слова throws:

 return_type method_name (список параметрів) викидає exceptionClass_list {// масив методу} 

Ми бачимо, що ключове слово throws з'являється після підпису методу, і він може містити список класів виключень, які можуть виникати в методі. Список класів виключень, написаних після ключового слова throws, розділяється комою.

Візьмемо один приклад, щоб зрозуміти ключове слово throws.

 calss Тест {public static void main (String [] args) кидає InterruptedException {thread sleep (10000); }} 

У наведеному вище коді основний потік виконаний для сну протягом деякого часу за допомогою методу sleep (). Тепер, коли основний метод перебуває в режимі сну, можливо, інші потоки можуть перервати основний потік. Але ключове слово throws використовується після підпису методу main (), так що програма легко компілюється. Ключове слово throws оголошує перевірений клас виключення InterruptedException. Тепер, якщо будь-який інший потік перериває головний потік під час виконання, ключове слово throws передає таке виключення до методу caller main (), який є JVM. JVM завершить роботу програми ненормально.

Точки, які потрібно пам'ятати про ключове слово throws:

  • Ключове слово throws використовується лише для оголошення визначених виключених класів. Використання ключового слова throws для неперевіреного виключення не впливає.
  • Якщо метод не бажає самостійно обробляти виняток, він передає це виключення методу абонента цього класу за допомогою ключового слова throws.
  • Його використання дозволяє лише плавно збирати програму.
  • Якщо під час виконання виникає виняток, програма аномально закінчується, навіть після використання ключового слова throws.
  • Рекомендується використовувати блок try / catch для нормального завершення роботи програми, якщо під час виконання виникає виняток.

Примітка:

Ключове слово throws використовується тільки в Java. C ++ і C # не використовують ключове слово throws.

Ключові відмінності між кидком і кидками

  1. Ключове слово throw, передача відповідальності за обробку винятків в JVM вручну, тоді як ключове слово кидає, передача відповідальності за обробку винятків методу виклику коду, в якому відбулося виключення.
  2. За ключовим словом throw слід об'єкт виключення, який він передає JVM. З іншого боку, за ключовим словом throws йдуть класи виключень, які можуть виникати в методі.
  3. Ключове слово throw може передати один об'єкт виключення одночасно, тоді як ключове слово throws може оголосити кілька класів виключень, розділених комою за один раз.

Висновок:

Ключове слово throw найкраще використовувати для налаштованого виключення. Блок try / catch найкращий для обробки винятків у порівнянні з ключовим словом throws.

Top