GeeksforGeeks (Română)

Ce este o excepție?o excepție este un eveniment nedorit sau neașteptat, care are loc în timpul executării unui program, adică în timpul rulării, care perturbă fluxul normal al instrucțiunilor programului.eroare: o eroare indică o problemă gravă pe care o aplicație rezonabilă nu ar trebui să încerce să o prindă.
excepție: excepția indică condițiile pe care o aplicație rezonabilă ar putea încerca să le prindă.,

ierarhia excepțiilor

toate tipurile de excepții și erori sunt subclase de clasă Throwable, care este clasa de bază a ierarhiei.O ramură este condusă de excepție. Această clasă este utilizată pentru condiții excepționale pe care programele utilizatorilor ar trebui să le prindă. NullPointerException este un exemplu de astfel de excepție.O altă ramură,eroare sunt folosite de Java run-time system (JVM) pentru a indica erori care au de a face cu mediul run-time în sine(JRE). StackOverflowError este un exemplu de astfel de eroare.,

Pentru verificat vs necontrolat excepție, a se vedea Verificat vs Necontrolat Excepții

Cum JVM ocupa o Excepție?manipularea implicită a excepțiilor: ori de câte ori în interiorul unei metode, dacă s-a produs o excepție, metoda creează un obiect cunoscut sub numele de obiect excepție și îl înmânează sistemului run-time(JVM). Obiectul excepție conține numele și descrierea excepției, și starea actuală a programului în cazul în care a avut loc excepție., Crearea obiectului excepție și manipularea acestuia în sistemul run-time se numește aruncarea unei excepții.S-ar putea să existe lista metodelor care au fost apelate pentru a ajunge la metoda în care a avut loc excepția. Această listă ordonată a metodelor se numește Call Stack.Acum se va întâmpla următoarea procedură.

  • sistemul run-time caută în stiva de apeluri pentru a găsi metoda care conține un bloc de cod care poate gestiona excepția apărută. Blocul codului se numește Handler de excepție.,
  • sistemul run-time începe căutarea din metoda în care a apărut excepția, continuă prin stiva de apeluri în ordinea inversă în care au fost apelate metodele.
  • dacă găsește handler adecvat, atunci trece excepția a avut loc să-l. Handler adecvat înseamnă tipul obiectului excepție aruncat se potrivește cu tipul obiectului excepție se poate ocupa.,
  • Dacă run-time sistem de căutări toate metodele pe stiva de apeluri și nu a putut fi găsit adecvate handler apoi run-time sistem de predare Excepția Obiect pentru a default handler excepție , care face parte din run-time sistem. Acest handler imprimă informațiile de excepție în următorul format și se termină programul anormal.
    Exception in thread "xxx" Name of Exception : Description... ...... .. // Call Stack

consultați diagrama de mai jos pentru a înțelege fluxul stivei de apeluri.,>

{
System.out.println(ex.getMessage());
}
}
}



Output :

/ by zero.

How Programmer handles an exception?,manipularea personalizată a excepțiilor: manipularea excepțiilor Java este gestionată prin cinci cuvinte cheie: încercați, prindeți, aruncați, aruncați și, în sfârșit. Pe scurt, iată cum funcționează. Declarațiile de Program care credeți că pot ridica excepții sunt conținute într-un bloc try. Dacă apare o excepție în cadrul blocului try, acesta este aruncat. Codul dvs. poate prinde această excepție (folosind bloc de captură) și se ocupe de ea într-un mod rațional. Excepțiile generate de sistem sunt aruncate automat de sistemul Java run-time. Pentru a arunca manual o excepție, utilizați cuvântul cheie arunca., Orice excepție care este aruncat dintr-o metodă trebuie să fie specificate ca atare printr-o clauză aruncă. Orice cod care absolut trebuie să fie executat după un bloc try completeaza este pus într-un bloc în cele din urmă.

articol detaliat: control flow in try catch in final block

Need of try-catch clause(Customized Exception Handling)

luați în considerare următorul program java.



Ieșire :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at GFG.main(GFG.java:9)

Explicație : În exemplul de mai sus o matrice este definit cu dimensiunea de exemplu, puteți accesa elemente numai de la index 0 la 3. Dar încercați să accesați elementele de la index 4 (din greșeală) de aceea aruncă o exception.In în acest caz, JVM termină programul anormal. Sistemul de declarații.afară.println („bună, vreau să execut”); nu va executa niciodată. Pentru a o executa, trebuie să ne ocupăm de excepție folosind try-catch. Prin urmare, pentru a continua fluxul normal al programului, avem nevoie de clauza try-catch.,

cum se utilizează clauza try-catch

puncte de reținut:

  • într-o metodă, pot exista mai multe declarații care ar putea arunca excepție, așa că puneți toate aceste declarații în propriul bloc try și furnizați handler separat de excepții în propriul bloc catch pentru fiecare dintre ele.
  • dacă apare o excepție în cadrul blocului try, acea excepție este gestionată de handler-ul de excepție asociat cu acesta. Pentru a asocia handler excepție, trebuie să punem bloc de captură după ea. Nu poate fi mai mult de un handlers excepție., Fiecare bloc de captură este un handler excepție care se ocupă de excepția tipului indicat de argumentul său. Argumentul, ExceptionType declară tipul excepției pe care o poate gestiona și trebuie să fie numele clasei care moștenește din clasa Throwable.
  • pentru fiecare bloc de încercare pot exista zero sau mai multe blocuri de captură, dar numai un singur bloc în cele din urmă.
  • blocul final este optional.It întotdeauna se execută dacă a apărut o excepție în try block sau nu . Dacă apare o excepție, atunci acesta va fi executat după ce încercați și prindeți blocuri., Și dacă excepția nu are loc, atunci acesta va fi executat după blocul try. Blocul final din java este utilizat pentru a pune coduri importante, cum ar fi curățarea codului, de exemplu, închiderea fișierului sau închiderea conexiunii.

Sumar

  • Tipuri de Excepții în Java
  • Verificat vs Necontrolat Excepții
  • Arunca – Aruncă în Java

de Referință :

Acest articol este contribuit, prin Nitsdheerendra și Gaurav Miglani. Dacă vă place GeeksforGeeks și doriți să contribuiți, puteți scrie și un articol folosind contribute.geeksforgeeks.,org sau mail articolul dvs. la [email protected]. vedeți articolul dvs. care apare pe pagina principală GeeksforGeeks și ajutați alți Geeks.vă rugăm să scrieți comentarii dacă găsiți ceva incorect sau doriți să împărtășiți mai multe informații despre subiectul discutat mai sus.

cititor de atenție! Nu te opri din învățat acum. Faceți rost de toate conceptele importante ale Fundației și Colecțiilor Java cu fundamentele cursului Java și Java Collections la un preț prietenos pentru studenți și deveniți gata pentru industrie.,

Article Tags :

Java

Practice Tags :

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *