logo

Java meta raktinį žodį

The Java meta raktinį žodį naudojamas paskelbti išimtį. Tai suteikia programuotojui informaciją, kad gali būti išimtis. Taigi, programuotojui geriau pateikti išimčių tvarkymo kodą, kad būtų galima palaikyti normalią programos eigą.

Išimčių tvarkymas daugiausia naudojamas pažymėtoms išimtims tvarkyti. Jei atsiranda kokia nors nepažymėta išimtis, pvz., NullPointerException, tai programuotojų kaltė, kad jis netikrina kodo prieš jį naudojant.

konvertuoti į dvigubą java

Java metimų sintaksė

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

Kokią išimtį reikia paskelbti?

Metai: Tik pažymėta išimtis, nes:

    nepažymėta išimtis:mes kontroliuojame, kad galėtume pataisyti savo kodą.klaida:nepriklausantys nuo mūsų valios. Pavyzdžiui, negalime nieko padaryti, jei įvyksta „VirtualMachineError“ arba „StackOverflowError“.

„Java“ meta raktažodžio pranašumas

Dabar Pažymėta išimtis gali būti platinama (persiunčiama skambučių krūvoje).

Jis suteikia informaciją metodo skambintojui apie išimtį.

Java meta Pavyzdys

Pažiūrėkime „Java throws“ sąlygos pavyzdį, kuriame aprašoma, kad patikrintos išimtys gali būti perduodamos naudojant raktinį žodį throws.

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...'); } } 
Išbandykite dabar

Išvestis:

 exception handled normal flow... 

Taisyklė: jei iškviečiame metodą, kuris skelbia išimtį, turime arba sugauti, arba paskelbti išimtį.

Yra du atvejai:

    1 atvejis:Pagavome išimtį, t. y. išimtį išsprendėme naudodami try/catch bloką.2 atvejis:Mes paskelbėme išimtį, ty nurodytą metimų raktinį žodį, naudodami metodą.

1 atvejis: rankenos išimtis Naudojant bandomąjį gaudymo bloką

Jei apdorosime išimtį, kodas bus vykdomas gerai, neatsižvelgiant į tai, ar programos metu atsiranda išimtis, ar ne.

burbulų rūšiavimas

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...'); } } 
Išbandykite dabar

Išvestis:

 exception handled normal flow... 

2 atvejis: paskelbkite išimtį

  • Jei paskelbsime išimtį, jei išimtis neįvyks, kodas bus vykdomas gerai.
  • Jei paskelbsime išimtį ir įvyks išimtis, ji bus išmesta vykdymo metu, nes metimai išimties netaiko.

Pažiūrėkime abiejų scenarijų pavyzdžius.

mašinraščio foreach kilpa

A) Jei išimtis neįvyksta

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...'); } } 
Išbandykite dabar

Išvestis:

 device operation performed normal flow... 

B) Jei įvyksta išimtis

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...'); } } 
Išbandykite dabar

Išvestis:

Java mesti raktinį žodį

Skirtumas tarp metimų ir metimų

Norėdami sužinoti daugiau, spustelėkite mane

Klausimas) Ar galime atmesti išimtį?

Taip, įmetant tą pačią išimtį gaudymo bloke.