logo

Išimčių tvarkymas Java

  1. Išimčių tvarkymas
  2. Išimčių tvarkymo privalumas
  3. Išimčių klasių hierarchija
  4. Išimčių rūšys
  5. Išimties pavyzdys
  6. Scenarijai, kai gali atsirasti išimtis

The Išimčių tvarkymas Java yra vienas iš galingiausių mechanizmas, skirtas valdyti vykdymo klaidas kad būtų galima palaikyti normalų programos srautą.

Šioje pamokoje sužinosime apie „Java“ išimtis, jų tipus ir skirtumą tarp pažymėtų ir nepažymėtų išimčių.

nulis tikrinimas java

Kas yra „Java“ išimtis?

Žodyno reikšmė: Išimtis yra nenormali būklė.

Java, išimtis yra įvykis, kuris sutrikdo įprastą programos eigą. Tai objektas, kuris išmetamas vykdymo metu.

Kas yra išimčių tvarkymas?

Išimčių tvarkymas yra mechanizmas, skirtas tvarkyti vykdymo klaidas, tokias kaip ClassNotFoundException, IOException, SQLException, RemoteException ir kt.

Išimčių tvarkymo privalumas

Pagrindinis išimčių tvarkymo pranašumas yra palaikyti normalią programos eigą . Išimtis paprastai sutrikdo įprastą programos eigą; štai kodėl turime elgtis su išimtimis. Panagrinėkime scenarijų:

 statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10; 

Tarkime, kad Java programoje yra 10 teiginių, o 5 sakinyje yra išimtis; likusi kodo dalis nebus vykdoma, t.y., sakiniai nuo 6 iki 10 nebus vykdomi. Tačiau kai atliekame išimčių tvarkymą, bus vykdomi likę teiginiai. Štai kodėl mes naudojame išimčių tvarkymą Java .

Ar tu žinai?
  • Kuo skiriasi pažymėtos ir nepažymėtos išimtys?
  • Kas vyksta už kodo int data=50/0;?
  • Kodėl naudoti kelių sugavimo bloką?
  • Ar yra galimybė, kai galutinis blokas nėra vykdomas?
  • Kas yra išimčių platinimas?
  • Kuo skiriasi raktiniai žodžiai „Meta“ ir „Metai“?
  • Kokios yra 4 išimčių tvarkymo su metodo nepaisymu taisyklės?

„Java Exception“ klasių hierarchija

Klasė java.lang.Throwable yra pagrindinė Java Exception hierarchijos klasė, kurią paveldėjo du poklasiai: Exception ir Error. „Java Exception“ klasių hierarchija pateikta toliau:

išimčių tvarkymo hierarchija

Java išimčių tipai

Dažniausiai yra dviejų tipų išimtys: pažymėtos ir nepažymėtos. Klaida laikoma nepažymėta išimtimi. Tačiau, pasak „Oracle“, yra trijų tipų išimtys, būtent:

  1. Patikrinta išimtis
  2. Nepažymėta išimtis
  3. Klaida
išimčių tvarkymo hierarchija

Skirtumas tarp pažymėtų ir nepažymėtų išimčių

1) Pažymėta išimtis

Klasės, kurios tiesiogiai paveldi klasę Throwable, išskyrus RuntimeException ir Error, yra žinomos kaip pažymėtos išimtis. Pavyzdžiui, IOException, SQLException ir tt Patikros išimtys tikrinamos kompiliavimo metu.

2) Nepažymėta išimtis

Klasės, kurios paveldi RuntimeException, yra žinomos kaip nepažymėtos išimtys. Pavyzdžiui, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException ir tt Nepažymėtos išimtys nėra tikrinamos kompiliavimo metu, tačiau jos tikrinamos vykdymo metu.

3) Klaida

Klaida nepataisoma. Kai kurie klaidų pavyzdžiai yra „OutOfMemoryError“, „VirtualMachineError“, „AssertionError“ ir kt.

„Java“ išimties raktiniai žodžiai

„Java“ pateikia penkis raktinius žodžius, kurie naudojami išimties tvarkai. Toliau pateiktoje lentelėje aprašomas kiekvienas.

raktinis žodisapibūdinimas
bandytiRaktinis žodis „bandyti“ naudojamas nurodyti bloką, kuriame turėtume įdėti išimties kodą. Tai reiškia, kad negalime naudoti vien try block. Po trynimo bloko turi sekti arba sugauti, arba pagaliau.
sugautiIšimčiai tvarkyti naudojamas blokas „pagauti“. Prieš tai turi būti trynimo blokas, o tai reiškia, kad negalime naudoti vien gaudymo bloko. Vėliau gali būti blokuojamas pagaliau.
pagaliau„Pagaliau“ blokas naudojamas reikiamam programos kodui vykdyti. Jis vykdomas neatsižvelgiant į tai, ar išimtis tvarkoma, ar ne.
mestiRaktinis žodis „išmesti“ naudojamas išimties išmetimui.
metimaiIšimtims deklaruoti naudojamas raktinis žodis „metimai“. Jame nurodoma, kad metode gali būti išimtis. Tai nedaro išimties. Jis visada naudojamas su metodo parašu.

Java išimčių tvarkymo pavyzdys

Pažiūrėkime „Java Exception Handling“ pavyzdį, kuriame išimčiai apdoroti naudojame try-catch teiginį.

JavaExceptionExample.java

 public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } } 
Išbandykite dabar

Išvestis:

 Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... 

Aukščiau pateiktame pavyzdyje 100/0 iškelia aritmetinę išimtį, kurią tvarko bandomasis blokas.

Įprasti „Java“ išimčių scenarijai

Pateikiami keli scenarijai, kai gali atsirasti nepažymėtų išimčių. Jie yra tokie:

1) Scenarijus, kai įvyksta aritmetinė išimtis

Jei kurį nors skaičių padalinsime iš nulio, atsiranda aritmetinė išimtis.

 int a=50/0;//ArithmeticException 

2) Scenarijus, kai įvyksta NullPointerException

Jei bet kuriame turime nulinę reikšmę kintamasis , atlikdami bet kokią operaciją su kintamuoju išmeta NullPointerException.

 String s=null; System.out.println(s.length());//NullPointerException 

3) Scenarijus, kai įvyksta NumberFormatException

Jei kurio nors kintamojo ar skaičiaus formatavimas nesutampa, gali atsirasti NumberFormatException. Tarkime, kad turime a styga kintamasis, turintis simbolių; pavertus šį kintamąjį į skaitmenį, atsiras NumberFormatException.

 String s='abc'; int i=Integer.parseInt(s);//NumberFormatException 

4) Scenarijus, kai įvyksta ArrayIndexOutOfBoundsException

Kai masyvas viršija jo dydį, įvyksta ArrayIndexOutOfBoundsException. ArrayIndexOutOfBoundsException gali atsirasti dėl kitų priežasčių. Apsvarstykite šiuos teiginius.

 int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException 

„Java“ išimčių indeksas

  1. „Java Try-Catch“ blokas
  2. Java kelių sugavimo blokas
  3. Java Neted Try
  4. „Java“ pagaliau blokas
  5. „Java Throw“ raktinis žodis
  6. „Java“ išimčių dauginimas
  7. „Java“ meta raktinį žodį
  8. „Java“ metimas prieš metimus
  9. „Java Final“ ir „Galutinai“ ir „Finalize“.
  10. „Java“ išimčių tvarkymas su metodo nepaisymu
  11. Java tinkintos išimtys