logo

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 kitör a ciklusból

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:

primitív adattípusok java-ban
 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.

konstruktor java-ban

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.