logo

Java izmet atslēgvārdu

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:

    neatzīmēts izņēmums:mēs kontrolējam, lai mēs varētu labot savu kodu.kļūda:ārpus mūsu kontroles. Piemēram, mēs nevaram neko darīt, ja rodas VirtualMachineError vai StackOverflowError.

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:Mēs esam pieķēruši izņēmumu, t.i., esam apstrādājuši izņēmumu, izmantojot try/catch bloku.2. gadījums:Mēs esam deklarējuši izņēmumu, t.i., norādīto metienu atslēgvārdu ar metodi.

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:

Java mest atslēgvārdu

Atšķirība starp metienu un metienu

Noklikšķiniet uz manis, lai iegūtu sīkāku informāciju

Jautājums) Vai mēs varam atcelt izņēmumu?

Jā, metot to pašu izņēmumu noķeršanas blokā.