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:
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: 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:
Skillnaden mellan kast och kast
Klicka på mig för mer informationFråga) Kan vi göra om ett undantag?
Ja, genom att kasta samma undantag i catch block.