Разлика между хвърлянията и хвърлянията в Java

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 15 Може 2024
Anonim
Разлика между хвърлянията и хвърлянията в Java - Технология
Разлика между хвърлянията и хвърлянията в Java - Технология

Съдържание


Хвърлянията и хвърлянията са ключовите думи, използвани при обработката на изключения. Най- хвърлям ключова дума се използва за предаване на екземпляра на изключението, създадено от програмиста, на JVM ръчно. Най- хвърля ключова дума, използвана за предаване на отговорността за обработка на изключението, възникнало в метода към метода на повикващия. Основната разлика между хвърлянията и хвърлянията е, че ключовата дума хвърляне използва обекта изключение, докато ключовата дума хвърляния използва името на класовете за изключения.

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

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

Основа за сравнениехвърлямхвърля
ОсновенПрехвърлянето на създадения от нас обект на изключение към JVM ръчно.Ключовата дума хвърляния се използва за делегиране на отговорността за обработка на изключения на обаждащия се метод.
Синтаксисхвърлям Throwable-instance;return_type method_name (списък с параметри) хвърля ExceptionClass_list
{
// тяло на метода
}
Следван отКлючовата дума за хвърляне е последвана от обект за изключение.Ключовата дума хвърляния е последвана от списъка на класовете за изключения, които могат да възникнат в метода.
Брой хвърлени изключенияКлючовата дума за хвърляне може да хвърли единичен екземпляр на изключение.Ключовата дума хвърля може да декларира няколко класа изключения, разделени със запетая.


Определение на хвърляне

Ключовата дума „хвърлям“Се използва за ръчно предаване на нашия създаден екземпляр за изключение на JVM (Java Virtual Machine). Ако „хвърляне“ не се използва за хвърляне на екземпляр на изключение и възникне изключението, тогава системата за изпълнение вътрешно изхвърля екземпляра на изключение към JVM и програмата се прекратява необичайно. Общата форма на ключовата дума за хвърляне е:

хвърляйте Throwable_instance;

Над Throwable_instance трябва да бъде обект от класа Throwable. Примитивни типове като int, float или char и екземплярът от клас, който не може да се хвърля, не могат да бъдат хвърлени с помощта на ключова дума.

Нека вземем пример, за да разберем хвърлянето на ключови думи.

Тест на клас {Публичен статичен невалиден главен (String args) {хвърляне на нов ArithmeticException ("/ по нула"); }}

В горния код, ключовата дума хвърля екземпляр от класа на изключение „ArithmeticException“. Ако ключовата дума за хвърляне не беше използвана тогава, методът main () би създал вътрешно обект на изключение, предаден на JVM.


Точките, които трябва да запомните за хвърлянето на ключови думи:

  • Той предава обекта на изключение ръчно на JVM.
  • Най-добре се използва за дефинираните от потребителя изключения или персонализирани изключения.
  • Ако паметта не е разпределена на изключителния обект, хвърлен чрез ключовата дума, тогава възниква изключение по време на изпълнение, NullPointerException.
  • Ключовата дума за хвърляне спира изпълнението на програмата веднага след нейното появяване. не можем директно да напишем изявление след изявлението за хвърляне. Ако напишем някакво становище директно след изказване на хвърляне, тогава компилаторът ще покаже грешка, недостъпно изявление по време на компилация.
  • Само обекти от клас Throwable могат да бъдат хвърлени с помощта на ключовата дума хвърляне. Ако изхвърленият обект не е обект от клас Throwable, получаваме грешка във времето за компилиране „Несъвместим тип е намерен. , задължително java.lang.Throwable ”

Забележка:

Ключовата дума за хвърляне се използва в C ++, JAVA, C #, за ръчно хвърляне на изключение.

Определение на хвърлянията

The „хвърля”Се използва за делегиране на отговорността за обработка на изключението, възникнало в метода, на неговия метод на повикване. Методът на обаждащия се отговаря за обработката на изключението, може да е всеки друг метод или JVM. Той декларира списъка на класовете за изключения, които могат да възникнат в метода.

Използването на ключовата дума хвърля убеждава компилатора, че изключението, възникнало в метода, трябва да се обработва от метода на обаждащия се, следователно не възниква грешка при компилация. Но методът на обаждащия се трябва да се справи с изключението или да делегира отговорността за обработката на изключението към неговия йерархичен метод. Когато възникне изключението по време на изпълнение, дори и след използването на ключовата дума хвърля, това не пречи на необичайното прекратяване на програмата. Ако методът на повикващия е main (), по подразбиране JVM обработва изключението.

Общата форма на ключовата дума хвърля:

return_type method_name (списък с параметри) хвърля изключениеClass_list {// body of method}

Можем да видим, че ключовата дума хвърляне се появява след подписа на метода и може да съдържа списъка с класове на изключения, които могат да се появят в метода. Списъкът на класовете за изключения, написани след хвърлянето на ключова дума, е разделен със запетаята.

Нека вземем един пример, за да разберем ключовата дума хвърляне.

тест calss {public static void main (String args) хвърля InterruptedException {sleep sleep (10000); }}

В горния код основната нишка е направена да спи известно време с помощта на метода sleep (). Сега, когато основният метод е в сън, е възможно другите нишки да прекъснат основната нишка. Но ключовата дума хвърляния се използва след подписването на метода main (), така че програмата ще се компилира лесно. Ключовата дума хвърля деклариране на проверения клас изключение InterruptedException. Сега, ако някоя друга нишка прекъсне основната нишка по време на изпълнение, ключовата дума хвърли ще предаде това изключение на метода на main (), който е JVM. JVM ще прекрати програмата ненормално.

Точките, които трябва да запомните за ключовата дума хвърля:

  • Ключовата дума хвърляния се използва само за деклариране на проверените класове на изключения. Използването на ключовата дума хвърляне за непроверено изключение няма влияние.
  • Ако методът не иска самостоятелно да се справи с изключението, той делегира това изключение на метода на обаждащия се от този клас, като използва ключовата дума хвърляне.
  • Използването му позволява само плавно компилиране на програмата.
  • Ако по време на изпълнение се случи изключение, програмата се прекратява необичайно, дори след използването на ключовата дума хвърляне.
  • Препоръчва се използването на try / catch блок за нормално прекратяване на програмата, ако по време на изпълнение се случи изключение.

Забележка:

Ключовите думи хвърляния, използвани само в Java. C ++ и C # не използват ключовата дума хвърляне.

  1. Хвърлянето на ключова дума, предаване на отговорността за обработка на изключенията в JVM ръчно, докато, ключовата дума хвърля, предаване на отговорността за обработка на изключения към метода на обаждащия се код, когато е възникнало изключение.
  2. Ключовата дума за хвърляне е последвана от обект изключение, който тя предава на JVM. От друга страна, ключовата дума хвърляния е последвана от класове на изключения, които могат да възникнат в метода.
  3. Ключовата дума за хвърляне може да хвърля един обект изключение наведнъж, докато ключовата дума хвърля може да декларира няколко класа изключения, разделени със запетая наведнъж.

Заключение:

Ключовата дума за хвърляне се използва най-добре за персонализираното изключение. Блокът пробване / хващане е най-подходящ за обработка на изключенията в сравнение с ключовата дума хвърляне.