Diferența dintre Aruncare și Aruncare în Java

O excepție este un eveniment care se întâmplă în timpul executării unui program în java, care îngreunează practic execuția generală a codului. Uneori, sistemul gestionează excepția în mod implicit, dar în unele cazuri, trebuie să gestionăm în mod explicit excepțiile bazate pe codul sau situațiile noastre. Transmiterea excepției în mod personalizat poate fi gestionată folosind: încercați, prindeți, aruncați, aruncați și în final cuvinte cheie. Când dorim să definim excepția din codul nostru, vom folosi throw, în timp ce atunci când dorim să definim explicit mai multe excepții, vom folosi throwuri. În acest subiect, vom discuta comparații între aruncări și aruncări

Ce este Aruncarea?

Când dorim să gestionăm orice excepție din codul nostru care nu este bifat, vom folosi throw. O aruncare poate fi utilizată în interiorul codului nostru pentru a gestiona excepțiile într-o manieră explicită. Amintiți-vă, nu putem gestiona un singur tip de excepție la un moment dat folosind aruncare. Dacă doriți să folosiți pentru mai multe utilizări de aruncare, trebuie să utilizați aruncarea asta de mai multe ori.

Sintaxă:

throw

Exemplu:

throw new ArithmeticException();

Aceste cazuri de excepție trebuie să fie subclase numite Aruncare. Acest lucru se datorează faptului că, Throwable are subclasa sa numită Excepție, iar în clasa de excepție, toate clasele de excepție definite de utilizator se află. Prin urmare, asigurați-vă că utilizați instanțe de excepție care sunt subclase sub linia de aruncare

Acum, să înțelegem fluxul programului atunci când îl folosim pentru a arunca. Codul va curge până când va ajunge la aruncare și după aceasta, va căuta blocul try-catch. Se examinează blocul de încercare pentru a verifica dacă există vreo declarație în interiorul blocului de captură care a menționat o excepție similară cu apariția. Dacă da, atunci controlul este mutat la asta. Dacă nu, va căuta următorul bloc try-catch și acest lucru continuă. Să presupunem că nu găsește un astfel de bloc try-catch care să gestioneze o excepție, atunci sistemul va gestiona excepția folosind gestionarea implicită a excepției, iar codul va fi încheiat.

Ce este Aruncarea?

Când presupunem că o metodă poate prezenta unele excepții în codul nostru bazat pe experiență, menționăm toate excepțiile din semnătura metodei folosind cuvântul cheie throws. Toate excepțiile vor fi menționate separat prin virgule.

Sintaxă:

() throws,

Exemplu:

void ExceptionExample() throws ArithmeticException, NullPointerException
(
//code
)

Deoarece aveți o idee ce fac aruncările și aruncările, să aruncăm o privire asupra diferențelor dintre aruncări și aruncări de mai jos:

Comparație față în cap între Aruncare și Aruncări (Infografie)

Mai jos se află primele 5 diferențe între Aruncare și Aruncătoare în Java

Diferențele cheie între Aruncare și Aruncare

Să ne uităm la diferențele cheie între Aruncare și Aruncătoare în java, precum mai jos:

  • Când dorim să definim o excepție în codul nostru, vom folosi throw. Dar, când dorim să definim excepții în mod explicit, vom folosi aruncările.
  • Dacă folosim aruncare, codul nu poate curge în cazul excepțiilor verificate. Când sunt verificate excepțiile, aceasta poate fi curgată cu ajutorul aruncărilor
  • Înțelept-sintaxă, scriem o variabilă pentru instanță după aruncare. Întrucât, scriem clase de excepție separate prin virgule după aruncări
  • Folosim aruncarea sub o definiție a metodei. Întrucât, declarăm că aruncă o excepție la semnarea unei metode.
  • Aruncarea are o limitare a manipulării singurei excepții la un moment dat. Pe de altă parte, Aruncătorii pot gestiona mai multe excepții.

Tabelul de comparare Aruncare vs Aruncări

Haideti sa discutam comparatia de top dintre Throw si Throws in Java

Baza de comparație între Aruncare și Aruncă

Arunca

aruncări

Cum sau când se foloseșteÎn aceste cazuri, atunci când trebuie să furnizăm o excepție logică în interiorul codului, în general, în aceste cazuri, folosim cuvântul cheie throw în cadrul unei funcții.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

În aceste cazuri, când afirmația unei funcții poate duce la o excepție, în aceste cazuri, în general, folosim cuvinte cheie throws cu o funcție pentru a gestiona acele excepții.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Pe baza bazei excepțieiLa un singur moment de timp, aruncarea poate fi folosită pentru a arunca o singură excepție. Când trebuie să aruncăm o anumită excepție, vom folosi aruncarea.

De exemplu:

// throw only a particular exception
throw new NullPointerException ();

Aruncările pot gestiona mai multe excepții. Când trebuie să gestionăm mai multe excepții, putem folosi aruncări, unde numele excepțiilor sunt menționate separat printr-o virgulă. Când se întâmplă vreo excepție, aceasta se va potrivi automat cu excepțiile declarate cu aruncările și manevrarea corespunzătoare.

De exemplu:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

În perspectiva sintaxeiUtilizăm aruncarea în interiorul unei funcții și pentru a gestiona un singur tip de excepție

De exemplu:

// throw only a particular exception
throw new NullPointerException ();

Vom folosi throw cu o funcție pentru a gestiona mai multe excepții simultan, folosind numele acelor clase de excepție.

De exemplu:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Perspectivă verificată / necontrolatăExcepțiile verificate nu pot fi gestionate prin aruncare. Poate gestiona doar excepții nemarcate care nu pot fi gestionate prin aruncări sau excepții verificate.

De exemplu:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException (); //null pointer was not checked
, hence we used in throw
)

Când vom cunoaște excepțiile apriori și le vom menționa pe cele din aruncări, acestea vor deveni excepții verificate.

De exemplu:

void ExceptionExample() throws ArithmeticException,
NullPointerException //explicit checked exceptions
(
//other code
)

Exemplu de codArunca:

public class ExceptionExample (
public static void main(String() args)
(
// Use of checked Exception by throw
try (
double num=1/0;
throw new ArithmeticException();
)
catch (ArithmeticException e)
(
e.printStackTrace();
)
)
)

aruncări:

import java.io.IOException;
public class ExceptionExample (
public static void main(String() args)
throws ArithmeticException //here we use unchecked
exception by throws
(
double num=1/0;
System.out.println (num);
)
)

Concluzie

Acestea sunt diferențe între aruncare și aruncare în Java. Aruncările vă pot oferi libertatea de a utiliza mai multe excepții simultan, dar aruncarea nu poate. Pe baza acestei distincții, trebuie să utilizați aruncările dacă trebuie să furnizați mai multe excepții simultan dacă nu sunteți sigur, atunci pur și simplu folosiți aruncarea pentru a pune excepții una câte una.

Articole recomandate

Acesta este un ghid pentru Throw vs Throws în Java. Aici discutăm diferențele dintre cheile de aruncare și aruncare în Java cu infografie și tabelul de comparație. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Lista Java vs. Lista cu Array
  2. JavaScript vs VBScript
  3. PHP vs JavaScript
  4. C vs Java