logo

Java kaster nøkkelord

De Java kaster nøkkelord brukes til å erklære et unntak. Det gir en informasjon til programmereren om at det kan forekomme et unntak. Så det er bedre for programmereren å gi unntakshåndteringskoden slik at normal flyt av programmet kan opprettholdes.

Unntakshåndtering brukes hovedsakelig til å håndtere de sjekkede unntakene. Hvis det oppstår et ukontrollert unntak som NullPointerException, er det programmerers feil at han ikke sjekker koden før den brukes.

Last ned YouTube-videoer på vlc

Syntaks for Java-kast

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

Hvilket unntak bør erklæres?

År: Kun avmerket unntak, fordi:

    uavmerket unntak:under vår kontroll, slik at vi kan rette koden vår.feil:utenfor vår kontroll. For eksempel kan vi ikke gjøre noe hvis det oppstår VirtualMachineError eller StackOverflowError.

Fordelen med Java kaster nøkkelord

Nå kan avmerket unntak spres (videresendt i anropsstabel).

Den gir informasjon til den som ringer metoden om unntaket.

Java kaster Eksempel

La oss se eksempelet på Java throws-klausulen som beskriver at sjekkede unntak kan forplantes av throws-nøkkelordet.

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...'); } } 
Test det nå

Produksjon:

struct array c programmering
 exception handled normal flow... 

Regel: Hvis vi kaller en metode som erklærer et unntak, må vi enten fange opp eller erklære unntaket.

Det er to tilfeller:

    Tilfelle 1:Vi har fanget unntaket, dvs. vi har håndtert unntaket ved å bruke try/catch-blokk.Tilfelle 2:Vi har erklært unntaket, dvs. spesifisert kast nøkkelord med metoden.

Tilfelle 1: Håndter unntak ved bruk av try-catch-blokk

I tilfelle vi håndterer unntaket, vil koden bli utført fint uansett om unntaket oppstår under programmet eller ikke.

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...'); } } 
Test det nå

Produksjon:

 exception handled normal flow... 

Tilfelle 2: Erklære unntak

  • I tilfelle vi erklærer unntaket, hvis unntaket ikke forekommer, vil koden bli utført fint.
  • I tilfelle vi erklærer unntaket og unntaket inntreffer, vil det bli kastet under kjøretid fordi kaster håndterer ikke unntaket.

La oss se eksempler for begge scenariene.

kantete materiale

A) Hvis unntak ikke forekommer

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...'); } } 
Test det nå

Produksjon:

 device operation performed normal flow... 

B) Hvis unntak forekommer

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...'); } } 
Test det nå

Produksjon:

Java-kast nøkkelord

Forskjellen mellom kast og kast

Klikk meg for detaljer

Spørsmål) Kan vi gi et unntak på nytt?

Ja, ved å kaste samme unntak i catch block.