I Java, undantagshantering är ett av de effektiva sätten att hantera körtidsfel så att programmets regelbundna flöde kan bevaras. Java Exception Handling är en mekanism för att hantera runtime-fel som ClassNotFoundException, IOException, SQLException, RemoteException, etc.
I den här artikeln kommer vi att lära oss om kast och kast i Java som kan hantera undantag i Java.
Java kast
Nyckelordet throw i Java används för att uttryckligen kasta ett undantag från en metod eller något kodblock. Vi kan kasta antingen markerat eller omarkerat undantag . Nyckelordet throw används huvudsakligen för att skapa anpassade undantag.
Syntax i Java
throw Instance Example: throw new ArithmeticException('/ by zero');>
Men detta undantag, dvs. Exempel måste vara av typ Kastbar eller en underklass av Kastbar .
Till exempel , en Exception är en underklass av Throwable och användardefinierade undantag utökar typiskt Exception-klassen . Till skillnad från C++ kan datatyper som int, char, floats eller icke-kastbara klasser inte användas som undantag.
Flödet av exekvering av programmet stoppar omedelbart efter att throw-satsen exekveras och närmaste omslutande Prova blocket kontrolleras för att se om det har en fånga uttalande som matchar typen av undantag. Om den hittar en matchning, överförs kontrollerad till det uttalandet annars nästa omslutande Prova blocket är markerat och så vidare. Om ingen matchning fånga hittas kommer standardexcepthanteraren att stoppa programmet.
Java-kast exempel
Exempel 1:
katodstrålerörsmonitor
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.>
Exempel 2
Java
// Java program that demonstrates> // the use of throw> class> Test {> > public> static> void> main(String[] args)> > {> > System.out.println(> 1> /> 0> );> > }> }> |
java-anslutning
>
>
hur man vet om någon blockerade dig på Android
Produktion
Exception in thread 'main' java.lang.ArithmeticException: / by zero>
Java kastar
throws är ett nyckelord i Java som används i signaturen för en metod för att indikera att den här metoden kan ge ett av de listade typundantagen. Den som anropar dessa metoder måste hantera undantaget med hjälp av ett försöksfångstblock.
Syntax för 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 ett program, om det finns en chans att göra ett undantag, varnar kompilatorn oss alltid om det och vi bör obligatoriskt hantera det markerade undantaget, annars får vi kompileringstidsfel som säger orapporterat undantag XXX måste fångas eller förklaras kastas . För att förhindra detta kompileringstidsfel kan vi hantera undantaget på två sätt:
- Genom att använda try catch
- Genom att använda kastar nyckelord
Vi kan använda nyckelordet throws för att delegera ansvaret för undantagshantering till den som ringer (det kan vara en metod eller JVM) sedan är anroparmetoden ansvarig för att hantera det undantaget.
Java ger exempel
Exempel 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'> );> > }> }> |
>
>
programmering i c-matriser
Produktion
error: unreported exception InterruptedException; must be caught or declared to be thrown>
Förklaring
I ovanstående program får vi kompileringstidsfel eftersom det finns en chans för undantag om huvudtråden går i viloläge, andra trådar får chansen att köra main()-metoden som kommer att orsaka InterruptedException.
Exempel 2
Java
// 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>
Förklaring
I programmet ovan, genom att använda nyckelordet throws, hanterade vi InterruptedException och vi kommer att få utdata som Hej nördar
Exempel 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.'> );> > }> > }> }> |
css-övergångsopacitet
>
>
Produktion
Inside fun(). caught in main.>
Viktiga punkter att komma ihåg om sökord för kast
- nyckelordet throws krävs endast för markerade undantag och användningen av nyckelordet throws för omarkerade undantag är meningslöst.
- throws nyckelord krävs bara för att övertyga kompilatorn och användningen av throws nyckelordet förhindrar inte onormal avslutning av programmet.
- Med hjälp av nyckelordet throws kan vi ge information till den som anropar metoden om undantaget.