logo

Java kastar nyckelord

De Java kastar nyckelord används för att förklara ett undantag. Det ger en information till programmeraren att det kan förekomma ett undantag. Så det är bättre för programmeraren att tillhandahålla undantagshanteringskoden så att programmets normala flöde kan upprätthållas.

Undantagshantering används främst för att hantera de markerade undantagen. Om det inträffar något okontrollerat undantag som NullPointerException är det programmerarens fel att han inte kontrollerar koden innan den används.

tecken till int i java

Syntax för Java-kast

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

Vilket undantag ska deklareras?

År: Endast markerat undantag, eftersom:

    omarkerat undantag:under vår kontroll så att vi kan korrigera vår kod.fel:bortom våran kontroll. Till exempel kan vi inte göra någonting om det uppstår VirtualMachineError eller StackOverflowError.

Fördelen med Java kastar nyckelord

Nu kan markerat undantag spridas (vidarebefordras i anropsstack).

Den ger information till den som anropar metoden om undantaget.

Java kastar Exempel

Låt oss se exemplet med Java throws-satsen som beskriver att markerade undantag kan spridas av throws-nyckelordet.

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...'); } } 
Testa det nu

Produktion:

iterator java karta
 exception handled normal flow... 

Regel: Om vi ​​anropar en metod som deklarerar ett undantag måste vi antingen fånga upp eller förklara undantaget.

Det finns två fall:

    Fall 1:Vi har fångat undantaget, dvs vi har hanterat undantaget med hjälp av försök/fångstblock.Fall 2:Vi har deklarerat undantaget dvs specificerat throws nyckelord med metoden.

Fall 1: Hantera undantag med hjälp av try-catch-block

Om vi ​​hanterar undantaget kommer koden att exekveras bra oavsett om undantag inträffar under programmet eller inte.

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...'); } } 
Testa det nu

Produktion:

 exception handled normal flow... 

Fall 2: Deklarera undantag

  • Om vi ​​förklarar undantaget, om undantag inte inträffar, kommer koden att exekveras bra.
  • Om vi ​​deklarerar undantaget och undantaget inträffar, kommer det att kastas under körning eftersom kastar hanterar inte undantaget.

Låt oss se exempel för båda scenarierna.

Ersätt java sträng

A) Om undantag inte förekommer

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...'); } } 
Testa det nu

Produktion:

 device operation performed normal flow... 

B) Om undantag inträffar

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...'); } } 
Testa det nu

Produktion:

Java-kast nyckelord

Skillnaden mellan kast och kast

Klicka på mig för mer information

Fråga) Kan vi göra om ett undantag?

Ja, genom att kasta samma undantag i catch block.