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:
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: 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:
A dobás és a dobás közötti különbség
Kattintson rám a részletekértKérdés) Megismételhetünk egy kivételt?
Igen, ugyanazt a kivételt dobva a fogásblokkban.