Anbefalt, 2020

Redaksjonens

Forskjellen mellom kaste og kaster i Java

Kaste og kaster er søkeordene som brukes i unntakshåndtering. Kasteordet brukes til å overføre forekomsten av unntaket som er opprettet av programmøren til JVM manuelt. Kaster søkeord som brukes til å overlate ansvaret for å håndtere unntaket oppstod i metoden til oppringermetoden. Te grunnforskjell mellom kaste og kaster er at kasteordet bruker unntaksobjektet mens kaster søkeordet bruker navnet på unntaksklassene.

Sammenligningstabel

Forhold til sammenligningkastekaster
grunn~~POS=TRUNCKasteordet overfører vårt opprettede unntaksobjekt til JVM manuelt.Kasteordet brukes til å delegere ansvaret for unntakshåndtering til den som ringer til metoden.
syntaxKast Throwable-instansen;return_type method_name (parameter-liste) kaster ExceptionClass_list
{
// Metode
}
Etterfulgt avKasteordet følger etter unntaksobjekt.Kaster søkeordet blir etterfulgt av listen over unntaksklassene som kan forekomme i metoden.
Antall unntak kastetKasteordet kan kaste et enkelt unntaksinstans.Kasteordet kan deklarere flere unntaksklasser adskilt av et komma.

Definisjon av kaste

Søkeordet " kaste " brukes til å overføre vårt opprettede unntakseksempel til JVM (Java Virtual Machine) manuelt. Hvis "kaste" ikke er vant til å kaste et unntak, og unntaket oppstår, kaster kjøresystemet internt unntakstilfellet til JVM, og programmet avsluttes unormalt. Den generelle form for kasteordet er:

 kaste Throwable_instance; 

Over Throwable_instance må være et objekt av klassen Throwable. Primitive typer som int, float eller char og den ikke-kaste klassen forekomsten kan ikke kastes ved å bruke kaste søkeord.

La oss ta et eksempel for å forstå søkeordet.

 Klassetest {Offentlig statisk tomt hoved (String [] args) {Kast nytt ArithmeticException ("/ by zero"); }} 

I overkoden kaster søkeordkastet en forekomst av Unntaksklassen "ArithmeticException". Hvis kasteordet ikke hadde blitt brukt, ville hovedmetoden () ha internt opprettet et unntaksobjekt overlevert til JVM.

Poengene å huske om søkeordet kaste:

  • Det overfører unntaksobjektet manuelt til JVM.
  • Den brukes best til brukerdefinerte unntak eller tilpassede unntak.
  • Hvis minnet ikke er allokert til unntaksobjektet kastet med kaste søkeord, oppstår det et runtime unntak, NullPointerException.
  • Kasteordet stopper utførelsen av programmet straks etter dets forekomst. Vi kan ikke skrive noen uttalelse direkte etter kasteoppstillingen. Hvis vi skriver noen staement direkte etter kaste setningen, vil kompilatoren vise en feil, unreachable statement under kompilering.
  • Bare gjenstander av Throwable klasse kan kastes ved å kaste søkeord. Hvis objektet kastet ikke er et objekt av klasse Throwable, så får vi en kompilert tidsfeil. "Inkompatibel type funnet. . kreves java.lang.Throwable "

Merk:

Kasteordet brukes i C ++, JAVA, C #, for å manuelt kaste et unntak.

Definisjon av kast

Søkeordet " kaster " brukes til å delegere ansvaret for å håndtere unntaket som oppstod i metoden, til den som ringer opp. Anropsmetoden er ansvarlig for å håndtere unntaket, det kan være en hvilken som helst annen metode eller JVM. Det erklærer listen over unntaksklassene som kan forekomme i metoden.

Bruken av kasteordet overbeviser kompilatoren om at unntaket oppstod i metoden som skal håndteres av anropsmetoden, og det oppstår ingen kompileringsfeil. Men ringermetoden må håndtere unntaket eller delegere ansvaret for å håndtere unntaket til dens hierarkimetode. Når kjøretid unntaket oppstår, da ikke selv etter bruk av kaster søkeord, det forhindrer ikke unormal avslutning av programmet. Hvis oppringermetoden er hoved (), håndterer JVM som standard unntaket.

Den generelle formen for kasteordet er:

 return_type method_name (parameter-liste) kaster unntakClass_list {// kroppsmetode} 

Vi kan se at kaster søkeord vises etter underskrift av metoden, og det kan inneholde listen over unntaksklasser som kan forekomme i metoden. Listen over unntaksklassene som er skrevet etter søkeordkastene, er adskilt av kommaen.

La oss ta et eksempel for å forstå kasteordet.

 calss Test {public static void main (String [] args) kaster InterruptedException {tråd søvn (10000); }} 

I den ovennevnte koden er hovedtråden laget for å sove for en stund ved hjelp av sleep () -metoden. Nå, når hovedmetoden er i dvale, er det mulig at de andre trådene kan forstyrre hovedtråden. Men kaster søkeordet brukes i etter signaturen til main () metoden, så programmet vil kompilere enkelt. Kaster søkeordet erklærer den merkede unntaksklassen InterruptedException. Nå, hvis en annen tråd forstyrrer hovedtråden i løpet av kjøretiden, vil kaster søkeordet overgi det unntaket til den som ringer hovedmetoden (), som er JVM. JVM ville avslutte programmet unormalt.

Poengene å huske om kaster søkeord:

  • Kasteordet brukes bare til å deklarere de merkede unntaksklassene. Bruken av kasteordet for et ukontrollert unntak har ingen innvirkning.
  • Hvis metoden ikke ønsker å håndtere unntaket på egenhånd, delegerer det det unntaket til innringermetoden i den klassen ved å bruke kasteordet.
  • Dens bruk tillater bare jevn kompilering av programmet.
  • Hvis et unntak oppstår ved kjøring, avslutter programmet unormalt, selv etter bruken av kasteordet.
  • Det anbefales å bruke prøve / fangstblokk for normal oppsigelse av programmet dersom et unntak oppstår ved kjøring.

Merk:

Søkeordet kaster brukes bare i Java. C ++ og C # ikke bruk kaster søkeord.

Viktige forskjeller mellom kaste og kaster

  1. Søkeordet kaster, overfører ansvaret for unntakshåndtering til JVM manuelt, mens søkeordet kaster, overfører ansvaret for unntakshåndtering til oppringermetoden til koden der et unntak har skjedd.
  2. Kasteordet etterfølges av unntaksobjektet som overleveres til JVM. På den annen side kaster søkeordet etterfulgt av unntaksklassene som det kan forekomme i metoden.
  3. Kasteordet kan kaste et enkelt unntaksobjekt av gangen, mens kasteordet kan deklarere flere unntaksklasser adskilt av et komma om gangen.

Konklusjon:

Kasteordet passer best til det tilpassede unntaket. Try / catch blokk er best for å håndtere unntakene i forhold til å kaste søkeord.

Top