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:
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: 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:
Forskjellen mellom kast og kast
Klikk meg for detaljerSpørsmål) Kan vi gi et unntak på nytt?
Ja, ved å kaste samme unntak i catch block.