Forskjell mellom kast og kast i Java

Forfatter: Laura McKinney
Opprettelsesdato: 1 April 2021
Oppdater Dato: 13 Kan 2024
Anonim
HOW WE BUILT AN OFFICE TANK - DECORATE YOUR WORKSPACE WITH AN AQUASCAPE
Video: HOW WE BUILT AN OFFICE TANK - DECORATE YOUR WORKSPACE WITH AN AQUASCAPE

Innhold


Kast og kast er nøkkelordene som brukes i unntakshåndtering. De kaste nøkkelord brukes til å overlevere forekomsten av unntaket som er opprettet av programmereren til JVM manuelt. De kaster nøkkelord som ble brukt til å overlevere ansvaret for å håndtere unntaket, skjedde i metoden til innringermetoden. Den grunnleggende forskjellen mellom kast og kast er at kast-nøkkelordet bruker unntaksobjektet, mens kast-nøkkelordet bruker navnet på unntaksklassene.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningkastekaster
grunn~~POS=TRUNCKastens nøkkelord overleverer vårt opprettede unntaksobjekt til JVM manuelt.Kastens nøkkelord brukes til å delegere ansvaret for unntakshåndtering til den som ringer metoden.
syntaxkaste forekomst;return_type method_name (parameterliste) kaster ExceptionClass_list
{
// body of method
}
Etterfulgt avKastens nøkkelord blir fulgt av unntaksobjekt.Kastens nøkkelord blir fulgt av listen over unntaksklassene som kan forekomme i metoden.
Antall unntak kastetKast søkeordet kan kaste en enkelt unntaksforekomst.Kastens nøkkelord kan erklære flere unntaksklasser atskilt med komma.


Definisjon av kast

Nøkkelordet “kaste”Brukes til å overlevere den opprettede unntaksforekomsten til JVM (Java Virtual Machine) manuelt. Hvis “kast” ikke brukes til å kaste et unntaksforekomst og unntaket inntreffer, kaster runtime-systemet internt unntaksforekomsten til JVM og programmet avsluttes unormalt. Den generelle formen for kastetøkkelordet er:

kaste Throwable_instance;

Over Throwable_instance må være et objekt i klassen Throwable. Primitive typer som int, float eller char og ikke-kastbar klasseinstans kan ikke kastes ved hjelp av throw søkeord.

La oss ta et eksempel for å forstå nøkkelordet kaste.

Klassetest {Public static void main (String args) {throw new ArithmeticException ("/ by zero"); }}

I koden over kaster nøkkelordet throw en forekomst av unntaksklassen “ArithmeticException”. Hvis kastetøkkelordet ikke hadde blitt brukt da, ville hovedmetoden () internt opprettet et unntaksobjekt overlevert JVM.


Poengene du må huske på nøkkelordet kast:

  • Den overleverer unntaksobjektet manuelt til JVM.
  • Det brukes best for de brukerdefinerte unntakene eller tilpassede unntak.
  • Hvis minnet ikke er allokert til unntaksobjektet kastet med kast nøkkelord, oppstår det et runtime-unntak, NullPointerException.
  • Kastnøkkelordet stopper utførelsen av programmet umiddelbart etter at det forekommer. Vi kan ikke direkte skrive noen uttalelse etter utkastet. Hvis vi skriver noen stasjoner direkte etter kastuttalelse, vil kompilatoren vise en feil, utilgjengelig uttalelse under samlingen.
  • Bare gjenstander som kan kastes, kan kastes ved hjelp av et nøkkelord. Hvis objektet som kastes ikke er et objekt av klassen som kan kastes, får vi en kompilertidsfeil “Inkompatibel type funnet. . påkrevd java.lang.Trowable ”

Merk:

Kastnøkkelordet brukes i C ++, JAVA, C #, for å kaste et unntak manuelt.

Definisjon av kast

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

Bruken av kastetastordet overbeviser kompilatoren om at unntaket skjedde i metoden skal håndteres av den som ringer metoden, og derfor oppstår ingen kompilasjonsfeil. Men innringermetoden må håndtere unntaket eller delegere ansvaret for å håndtere unntaket til hierarkimetoden. Når unntaket av runtime oppstår, forhindrer det ikke selv etter bruk av nøkkelord for kast, unormal avslutning av programmet. Hvis innringermetoden er hoved (), håndterer JVM som standard unntaket.

Den generelle formen for kastetøkkelordet er:

return_type method_name (parameterliste) kaster exceptionClass_list {// body of method}

Vi kan se at kasterøkkelord vises etter signaturen til metoden, og det kan inneholde listen over unntaksklasser som kan forekomme i metoden. Listen over unntaksklassene som er skrevet etter nøkkelordet kast, skilles med komma.

La oss ta ett eksempel for å forstå kasterøkkelordet.

calss Test {public static void main (String args) kaster InterruptException {thread sleep (10000); }}

I koden over blir hovedtråden satt til å sove i noen tid ved hjelp av søvn () -metoden. Når hovedmetoden er i dvale, er det mulig at de andre trådene kan avbryte hovedtråden. Men kastetøkkelordet brukes i etter signaturen til main () -metoden, så programmet ville kompilere enkelt. Kastens nøkkelord erklærer den merkede unntaksklassen InterruptException. Hvis noen annen tråd avbryter hovedtråden under kjøretid, vil kastetøkkelordet overføre dette unntaket til den som ringer main () -metoden, som er JVM. JVM ville avslutte programmet unormalt.

Poengene du må huske på om kaster nøkkelord:

  • Kastens nøkkelord brukes bare til å deklarere de merkede unntaksklassene. Bruken av kastetastordet for et ikke merket unntak har ingen innvirkning.
  • Hvis metoden ikke ønsker å håndtere unntaket på egen hånd, delegerer den dette unntaket til innringermetoden til den klassen ved å bruke kastetastordet.
  • Bruken tillater bare jevn kompilering av programmet.
  • Hvis et unntak inntreffer under kjøretid, avsluttes programmet unormalt, selv etter bruk av kast-nøkkelordet.
  • Det anbefales å bruke try / catch block for normal avslutning av programmet hvis et unntak inntreffer under kjøretid.

Merk:

Nøkkelordet kast brukes bare i Java. C ++ og C # bruker ikke kast-nøkkelordet.

  1. Nøkkelordet kaster, overleverer ansvaret for unntakshåndtering til JVM manuelt, mens nøkkelordet kaster, overleverer ansvaret for unntakshåndtering til den som ringer metoden til koden der et unntak har skjedd.
  2. Kastnøkkelordet blir fulgt av unntaksobjektet som det overlater til JVM. På den annen side følges kast-nøkkelord av unntaksklassene som kan oppstå i metoden.
  3. Kastnøkkelordet kan kaste et enkelt unntaksobjekt om gangen, mens kasternøkkelordet kan erklære flere unntaksklasser atskilt med komma om gangen.

Konklusjon:

Kastens nøkkelord brukes best til det tilpassede unntaket. Try / catch-blokkeringen er best for å håndtere unntakene sammenlignet med kasteord.