The Java izmet atslēgvārdu tiek izmantots, lai paziņotu izņēmumu. Tas programmētājam sniedz informāciju, ka var būt izņēmums. Tāpēc programmētājam ir labāk nodrošināt izņēmumu apstrādes kodu, lai varētu uzturēt normālu programmas plūsmu.
Izņēmumu apstrāde galvenokārt tiek izmantota, lai apstrādātu pārbaudītos izņēmumus. Ja rodas kāds nepārbaudīts izņēmums, piemēram, NullPointerException, programmētājs ir vainīgs, ka viņš nepārbauda kodu pirms tā izmantošanas.
cast int virknē java
Java metienu sintakse
return_type method_name() throws exception_class_name{ //method code }
Kurš izņēmums ir jāpaziņo?
Gadi: Atzīmēts tikai izņēmums, jo:
Java met atslēgvārda priekšrocība
Tagad pārbaudīto izņēmumu var izplatīt (pārsūtīt zvanu kaudzē).
Tā sniedz informāciju metodes izsaucējam par izņēmumu.
Java met Piemērs
Apskatīsim Java throws klauzulas piemēru, kas apraksta, ka pārbaudītos izņēmumus var izplatīt ar throws atslēgvārdu.
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...'); } }Izmēģiniet to tūlīt
Izvade:
exception handled normal flow...
Noteikums: ja mēs izsaucam metodi, kas deklarē izņēmumu, mums ir vai nu jāķer, vai jāpaziņo izņēmums.
Ir divi gadījumi:
1. gadījums: roktura izņēmums, izmantojot try-catch bloku
Ja mēs apstrādāsim izņēmumu, kods tiks izpildīts precīzi neatkarīgi no tā, vai programmas laikā notiek izņēmums vai nē.
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...'); } }Izmēģiniet to tūlīt
Izvade:
pārvērst virkni par veselu skaitli
exception handled normal flow...
2. gadījums: paziņot par izņēmumu
- Ja mēs pasludināsim izņēmumu, ja izņēmums nenotiek, kods tiks izpildīts labi.
- Ja mēs pasludināsim izņēmumu un notiks izņēmums, tas tiks izmests izpildlaikā, jo metieni nerisina izņēmumu.
Apskatīsim abu scenāriju piemērus.
A) Ja izņēmums nenotiek
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...'); } }Izmēģiniet to tūlīt
Izvade:
'prim's algoritms'
device operation performed normal flow...
B) Ja notiek izņēmums
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...'); } }Izmēģiniet to tūlīt
Izvade:
Atšķirība starp metienu un metienu
Noklikšķiniet uz manis, lai iegūtu sīkāku informācijuJautājums) Vai mēs varam atcelt izņēmumu?
Jā, metot to pašu izņēmumu noķeršanas blokā.