logo

aruncă și aruncă în Java

În Java, gestionarea excepțiilor este unul dintre mijloacele eficiente de a gestiona erorile de rulare, astfel încât fluxul obișnuit al aplicației să poată fi păstrat. Java Exception Handling este un mecanism de gestionare a erorilor de rulare, cum ar fi ClassNotFoundException, IOException, SQLException, RemoteException etc.

În acest articol, vom afla despre throw și throws în Java care poate gestiona excepții în Java.

Aruncarea Java

Cuvântul cheie throw în Java este folosit pentru a arunca în mod explicit o excepție de la o metodă sau orice bloc de cod. Putem arunca pe oricare excepție bifată sau nebifată . Cuvântul cheie throw este folosit în principal pentru a arunca excepții personalizate.



Sintaxă în Java throw

 throw   Instance  Example: throw new ArithmeticException('/ by zero');>

Dar această excepție și anume, Instanță trebuie să fie de tip Aruncabil sau o subclasă de Aruncabil .

De exemplu , o excepție este o subclasă de Throwable și excepțiile definite de utilizator extind de obicei clasa Exception . Spre deosebire de C++, tipurile de date precum int, char, floats sau clase care nu pot fi aruncate nu pot fi folosite ca excepții.

Fluxul de execuție al programului se oprește imediat după executarea instrucțiunii throw și cea mai apropiată încadrare. încerca blocul este verificat pentru a vedea dacă are un captură declarație care se potrivește cu tipul de excepție. Dacă găsește o potrivire, controlat este transferat la declarația respectivă, în caz contrar încerca blocul este bifat și așa mai departe. Dacă nu se potrivește captură este găsit, atunci handlerul implicit de excepții va opri programul.

Java arunca Exemple

Exemplul 1:

Java




// Java program that demonstrates the use of throw> class> ThrowExcep {> >static> void> fun()> >{> >try> {> >throw> new> NullPointerException(>'demo'>);> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught inside fun().'>);> >throw> e;>// rethrowing the exception> >}> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught in main.'>);> >}> >}> }>

jocuri cu mesaje pe Android
>

>

Ieșire

Caught inside fun(). Caught in main.>

Exemplul 2

Java




// Java program that demonstrates> // the use of throw> class> Test {> >public> static> void> main(String[] args)> >{> >System.out.println(>1> />0>);> >}> }>

>

>

Ieșire

Exception in thread 'main' java.lang.ArithmeticException: / by zero>

Java aruncă

throws este un cuvânt cheie în Java care este utilizat în semnătura unei metode pentru a indica faptul că această metodă ar putea arunca una dintre excepțiile de tip enumerate. Apelantul la aceste metode trebuie să gestioneze excepția folosind un bloc try-catch.

Sintaxa aruncărilor Java

 type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>

Într-un program, dacă există șansa de a ridica o excepție, compilatorul ne avertizează întotdeauna despre aceasta și în mod obligatoriu ar trebui să ne ocupăm de acea excepție verificată. În caz contrar, vom primi o eroare de timp de compilare care spune excepția neraportată XXX trebuie prinsă sau declarată a fi aruncată . Pentru a preveni această eroare de timp de compilare, putem gestiona excepția în două moduri:

  1. Folosind try catch
  2. Prin folosirea aruncări cuvânt cheie

Putem folosi cuvântul cheie throws pentru a delega responsabilitatea gestionării excepțiilor apelantului (poate fi o metodă sau JVM), apoi metoda apelantului este responsabilă să gestioneze acea excepție.

Java aruncă Exemple

Exemplul 1

Java




// Java program to illustrate error in case> // of unhandled exception> class> tst {> >public> static> void> main(String[] args)> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }>

>

>

Ieșire

error: unreported exception InterruptedException; must be caught or declared to be thrown>

Explicaţie

În programul de mai sus, primim o eroare de timp de compilare, deoarece există o șansă de excepție dacă firul principal se va opri, alte fire au șansa de a executa metoda main() care va provoca InterruptedException.

Exemplul 2

Java




// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }>

întrebări de bază pentru interviul Java

>

>

Ieșire

Hello Geeks>

Explicaţie

În programul de mai sus, folosind cuvântul cheie throws, am gestionat InterruptedException și vom obține rezultatul ca Salutare Geeks

Exemplul 3

Java




// Java program to demonstrate working of throws> class> ThrowsExecp {> >static> void> fun()>throws> IllegalAccessException> >{> >System.out.println(>'Inside fun(). '>);> >throw> new> IllegalAccessException(>'demo'>);> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (IllegalAccessException e) {> >System.out.println(>'caught in main.'>);> >}> >}> }>

>

>

Ieșire

Inside fun(). caught in main.>

Puncte importante de reținut despre aruncările de cuvinte cheie

  • cuvântul cheie throws este necesar numai pentru excepțiile verificate, iar utilizarea cuvântului cheie throws pentru excepțiile necontrolate este lipsită de sens.
  • cuvântul cheie throws este necesar doar pentru a convinge compilatorul, iar utilizarea cuvântului cheie throws nu împiedică terminarea anormală a programului.
  • Cu ajutorul cuvântului cheie throws, putem oferi informații apelantului metodei despre excepție.