A Java kulcsszót dob

A Java kulcsszót dob

A A Java kulcsszót dob kivétel deklarálására szolgál. Tájékoztatást ad a programozónak, hogy előfordulhat kivétel. Ezért jobb, ha a programozó megadja a kivételkezelő kódot, hogy a program normál áramlása megmaradjon.

A Kivételkezelés főként a bejelölt kivételek kezelésére szolgál. Ha bármilyen ellenőrizetlen kivétel történik, például a NullPointerException, akkor a programozó hibája, hogy nem ellenőrzi a kódot a felhasználás előtt.

Java dobások szintaxisa

 return_type method_name() throws exception_class_name{ //method code }  

Melyik kivételt kell bejelenteni?

Évek: Csak bejelölt kivétel, mert:

    ellenőrizetlen kivétel: irányításunk alatt áll, hogy kijavíthassuk a kódunkat. hiba: ellenőrzésünkön kívül. Például nem tudunk semmit tenni, ha VirtualMachineError vagy StackOverflowError történik.

A Java dob kulcsszó előnyei

Most a Checked Exception továbbítható (a hívásveremben továbbítható).

Információt ad a metódus hívójának a kivételről.

A Java példát dob

Lássuk a Java throws záradék példáját, amely leírja, hogy az ellenőrzött kivételek a throws kulcsszóval továbbíthatók.

Testthrows1.java

 import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } }  
Tesztelje most

Kimenet:

 exception handled normal flow...  

Szabály: Ha olyan metódust hívunk meg, amely kivételt deklarál, akkor vagy el kell fognunk, vagy ki kell jelentenünk a kivételt.

Két eset van:

    1. eset: Elkaptuk a kivételt, azaz a try/catch blokk segítségével kezeltük a kivételt. 2. eset: A metódussal deklaráltuk a kivételt, azaz a megadott throws kulcsszót.

1. eset: Kezelési kivétel Try-catch blokk használatával

Ha a kivételt kezeljük, akkor a kód rendben lefut, függetlenül attól, hogy a program során előfordul-e kivétel, vagy sem.

Testthrows2.java

 import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } }  
Tesztelje most

Kimenet:

 exception handled normal flow...  

2. eset: Kivétel bejelentése

  • Ha kivételt deklarálunk, ha kivétel nem történik, a kód rendben lefut.
  • Abban az esetben, ha deklaráljuk a kivételt, és a kivétel bekövetkezik, a rendszer futás közben dobja, mert dobások nem kezeli a kivételt.

Lássunk példákat mindkét forgatókönyvre.

A) Ha nem történik kivétel

Testthrows3.java

 import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }  
Tesztelje most

Kimenet:

 device operation performed normal flow...  

B) Ha kivétel történik

Testthrows4.java

 import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }  
Tesztelje most

Kimenet:

Java dobás kulcsszó

A dobás és a dobás közötti különbség

Kattintson rám a részletekért

Kérdés) Megismételhetünk egy kivételt?

Igen, ugyanazt a kivételt dobva a fogásblokkban.