I Java, unntakshåndtering er en av de effektive måtene å håndtere kjøretidsfeil slik at den vanlige flyten av applikasjonen kan bevares. Java Exception Handling er en mekanisme for å håndtere kjøretidsfeil som ClassNotFoundException, IOException, SQLException, RemoteException, etc.
mb vs gb
I denne artikkelen vil vi lære om kast og kast i Java som kan håndtere unntak i Java.
Java-kast
Nøkkelordet throw i Java brukes til å eksplisitt kaste et unntak fra en metode eller en hvilken som helst kodeblokk. Vi kan kaste heller avmerket eller uavmerket unntak . Søkeordet throw brukes hovedsakelig til å lage tilpassede unntak.
Syntaks i Java-kast
throw Instance Example: throw new ArithmeticException('/ by zero');> Men dette unntaket, dvs. Forekomst må være av typen Kastbar eller en underklasse av Kastbar .
For eksempel , en Exception er en underklasse av Throwable og brukerdefinerte unntak utvider vanligvis Exception-klassen . I motsetning til C++ kan ikke datatyper som int, char, floats eller ikke-kastbare klasser brukes som unntak.
Utføringsflyten av programmet stopper umiddelbart etter at throw-setningen er utført og nærmeste omsluttende prøve blokken sjekkes for å se om den har en å fange uttalelse som samsvarer med typen unntak. Hvis den finner en match, blir kontrollert overført til den setningen ellers neste vedlegg prøve blokken er sjekket, og så videre. Hvis ingen samsvarer å fange er funnet, vil standard unntaksbehandler stoppe programmet.
Java-kast eksempler
Eksempel 1:
Java
// Java program that demonstrates the use of throw> class> ThrowExcep {> >static> void> fun()> >{> >try> {> >throw> new> NullPointerException(>'demo'>);> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught inside fun().'>);> >throw> e;>// rethrowing the exception> >}> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught in main.'>);> >}> >}> }> |
>
>
Produksjon
Caught inside fun(). Caught in main.>
Eksempel 2
Java
// Java program that demonstrates> // the use of throw> class> Test {> >public> static> void> main(String[] args)> >{> >System.out.println(>1> />0>);> >}> }> |
>
>
Produksjon
Exception in thread 'main' java.lang.ArithmeticException: / by zero>
Java kaster
throws er et nøkkelord i Java som brukes i signaturen til en metode for å indikere at denne metoden kan gi et av de listede typeunntakene. Den som ringer til disse metodene må håndtere unntaket ved hjelp av en try-catch-blokk.
Syntaks for Java-kast
type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>
I et program, hvis det er en sjanse for å gjøre et unntak, vil kompilatoren alltid advare oss om det, og obligatorisk bør vi håndtere det sjekkede unntaket, ellers vil vi få kompileringstidsfeil som sier urapportert unntak XXX må fanges opp eller erklæres å bli kastet . For å forhindre denne kompileringstidsfeilen kan vi håndtere unntaket på to måter:
- Ved å bruke try catch
- Ved å bruke kaster søkeord
Vi kan bruke nøkkelordet throws for å delegere ansvaret for unntakshåndtering til den som ringer (det kan være en metode eller JVM), så er innringermetoden ansvarlig for å håndtere det unntaket.
Java kaster eksempler
Eksempel 1
Java
// Java program to illustrate error in case> // of unhandled exception> class> tst {> >public> static> void> main(String[] args)> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
sammenknytte java-strenger
>
>
Produksjon
error: unreported exception InterruptedException; must be caught or declared to be thrown>
Forklaring
I programmet ovenfor får vi kompileringstidsfeil fordi det er en sjanse for unntak hvis hovedtråden går i dvale, andre tråder får sjansen til å utføre main()-metoden som vil forårsake InterruptedException.
Eksempel 2
Java
hvor gammel er pete davidson
// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
>
Produksjon
Hello Geeks>
Forklaring
I programmet ovenfor, ved å bruke nøkkelordet throws, håndterte vi InterruptedException og vi vil få utdata som Hei Geeks
Eksempel 3
Java
// Java program to demonstrate working of throws> class> ThrowsExecp {> >static> void> fun()>throws> IllegalAccessException> >{> >System.out.println(>'Inside fun(). '>);> >throw> new> IllegalAccessException(>'demo'>);> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (IllegalAccessException e) {> >System.out.println(>'caught in main.'>);> >}> >}> }> |
>
>
Produksjon
Inside fun(). caught in main.>
Viktige punkter å huske om kast søkeord
- throws-nøkkelordet kreves bare for avmerkede unntak, og bruk av throws-nøkkelordet for ukontrollerte unntak er meningsløst.
- throws-nøkkelordet kreves bare for å overbevise kompilatoren, og bruk av throws-nøkkelordet forhindrer ikke unormal avslutning av programmet.
- Ved hjelp av nøkkelordet throws kan vi gi informasjon til den som ringer metoden om unntaket.