Î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:
- Folosind try catch
- 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.