logo

kast og kast i Java

I Java, Undtagelseshåndtering er et af de effektive midler til at håndtere runtime fejl, så det regelmæssige flow af applikationen kan bevares. Java Exception Handling er en mekanisme til at håndtere runtime fejl såsom ClassNotFoundException, IOException, SQLException, RemoteException osv.

javascript streng udskiftning

I denne artikel vil vi lære om throw og kast i Java, som kan håndtere undtagelser i Java.

Java kast

Throw nøgleordet i Java bruges til eksplicit at kaste en undtagelse fra en metode eller en hvilken som helst kodeblok. Vi kan kaste enten markeret eller umarkeret undtagelse . Køreordet throw bruges hovedsageligt til at skabe tilpassede undtagelser.



Syntaks i Java kast

 throw   Instance  Example: throw new ArithmeticException('/ by zero');>

Men denne undtagelse, dvs. Forekomst skal være af typen Kan kastes eller en underklasse af Kan kastes .

For eksempel , er en undtagelse en underklasse af Throwable, og brugerdefinerede undtagelser udvider typisk undtagelsesklassen . I modsætning til C++ kan datatyper såsom int, char, float eller ikke-kastbare klasser ikke bruges som undtagelser.

Udførelsesstrømmen af ​​programmet stopper umiddelbart efter at throw-sætningen er udført og den nærmeste omsluttende prøve blok kontrolleres for at se, om den har en fangst erklæring, der matcher typen af ​​undtagelse. Hvis den finder et match, overføres kontrolleret til den erklæring ellers næste vedhæftning prøve blok er kontrolleret, og så videre. Hvis der ikke matches fangst er fundet, vil standard undtagelsesbehandleren standse 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.'>);> >}> >}> }>

>

>

Produktion

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>);> >}> }>

>

>

Produktion

Exception in thread 'main' java.lang.ArithmeticException: / by zero>

Java kaster

throws er et nøgleord i Java, der bruges i signaturen af ​​en metode for at indikere, at denne metode kan give en af ​​de anførte typeundtagelser. Den, der ringer til disse metoder, skal håndtere undtagelsen ved hjælp af en try-catch-blok.

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 der er en chance for at rejse en undtagelse, advarer kompilatoren os altid om det, og vi skal nødvendigvis håndtere den kontrollerede undtagelse, ellers får vi kompileringstidsfejl, der siger urapporteret undtagelse XXX skal fanges eller erklæres for at blive kastet . For at forhindre denne kompileringstidsfejl kan vi håndtere undtagelsen på to måder:

  1. Ved at bruge try catch
  2. Ved at bruge kaster søgeord

Vi kan bruge nøgleordet throws til at uddelegere ansvaret for undtagelseshåndtering til den, der ringer (det kan være en metode eller JVM), så er den, der ringer, ansvarlig for at håndtere denne undtagelse.

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'>);> >}> }>

java system.out.println

>

>

Produktion

error: unreported exception InterruptedException; must be caught or declared to be thrown>

Forklaring

I ovenstående program får vi kompileringstidsfejl, fordi der er en chance for undtagelse, hvis hovedtråden går i dvale, andre tråde får chancen for at udføre main()-metoden, hvilket vil forårsage InterruptedException.

Eksempel 2

Java


installere maven



// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }>

>

>

Produktion

Hello Geeks>

Forklaring

I ovenstående program, ved at bruge throws nøgleordet, håndterede vi InterruptedException, og vi vil få output som Hej nørder

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

>

>

Produktion

Inside fun(). caught in main.>

Vigtige punkter at huske om kast søgeord

  • throws nøgleordet er kun påkrævet for markerede undtagelser, og brugen af ​​throws nøgleordet for ukontrollerede undtagelser er meningsløst.
  • throws nøgleordet er kun påkrævet for at overbevise compileren, og brugen af ​​throws nøgleordet forhindrer ikke unormal afslutning af programmet.
  • Ved hjælp af throws nøgleordet kan vi give information til den, der ringer til metoden, om undtagelsen.