Skillnaden mellan kast och kast i Java

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 5 Maj 2024
Anonim
Synchronized vs ReadWriteLock vs StampedLock [Java Multithreading]
Video: Synchronized vs ReadWriteLock vs StampedLock [Java Multithreading]

Innehåll


Kast och kast är nyckelorden som används vid undantagshantering. De kasta nyckelord används för att överlämna förekomsten av undantaget som skapats av programmeraren till JVM manuellt. De kastar nyckelord som används för att överlämna ansvaret för att hantera undantaget inträffade i metoden till den som ringer metoden. Den grundläggande skillnaden mellan kast och kast är att kast-nyckelordet använder undantagsobjektet medan kast-nyckelordet använder namnet på undantagsklasserna.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelsekastakastar
GrundläggandeKastnyckelordet överlämnar vårt skapade undantagsobjekt till JVM manuellt.Kastnyckelordet används för att delegera ansvaret för undantagshantering till den som ringer till metoden.
Syntaxkasta Throwable-instans;return_type method_name (parameterlista) kastar ExceptionClass_list
{
// metodkropp
}
Följd avKastnyckelordet följs av undantagsobjekt.Kastnyckelordet följs av listan över undantagsklasser som kan uppstå i metoden.
Antal undantag kastadeKastnyckelordet kan kasta en enda undantagsinstans.Kastnyckelordet kan förklara flera undantagsklasser separerade med komma.


Definition av kast

Nyckelordet "kasta”Används för att överlämna vår skapade undantagsinstans till JVM (Java Virtual Machine) manuellt. Om "kast" inte används för att kasta en undantagsinstans och undantaget inträffar, kastar runtime-systemet internt undantagsinstansen till JVM och programmet avslutas onormalt. Den allmänna formen för nyckelordet är:

kasta Throwable_instance;

Ovanför Throwable_instance måste vara ett objekt i klassen Throwable. Primitiva typer som int, float eller char och den icke-kastbara klassinstansen kan inte kastas med hjälp av throw nyckelord.

Låt oss ta ett exempel för att förstå nyckelordet kast.

Klasstest {Public static void main (String args) {kasta ny ArithmeticException ("/ by zero"); }}

I koden ovan kastar nyckelordet ett exempel på undantagsklassen "ArithmeticException". Om kastnyckelordet inte hade använts då, skulle huvudmetoden () internt ha skapat ett undantagsobjekt som överlämnats till JVM.


De punkter att komma ihåg om nyckelordet kast:

  • Det överlämnar undantagsobjektet manuellt till JVM.
  • Det används bäst för de användardefinierade undantagen eller anpassade undantag.
  • Om minnet inte tilldelas undantagsobjektet som kastas med ett nyckelord, sker det ett runtime-undantag, NullPointerException.
  • Kastnyckelordet stoppar körningen av programmet omedelbart efter det har inträffat. vi kan inte skriva något uttalande efter kastuttalandet. Om vi ​​skriver någon station direkt efter kastutlåtande kommer kompilatorn att visa ett felaktigt, otillgängligt uttalande under sammanställningen.
  • Endast föremål i kastbar klass kan kastas med ett nyckelord. Om det kastade objektet inte är ett objekt i klass Kastbart får vi ett kompileringstidsfel “Inkompatibel typ hittades. . krävs java.lang.Trowable ”

Notera:

Kastnyckelordet används i C ++, JAVA, C #, för att manuellt kasta ett undantag.

Definition av kast

"kastar”Nyckelord används för att delegera ansvaret för att hantera undantaget som inträffade i metoden till dess anropsmetod. Anropsmetoden är ansvarig för att hantera undantaget, det kan vara någon annan metod eller JVM. Den förklarar listan över undantagsklasser som kan förekomma i metoden.

Användningen av kast-nyckelordet övertygar kompilatorn att undantaget inträffade i metoden ska hanteras av den anropande metoden. Därför inträffar inget kompilationsfel. Men anropsmetoden måste hantera undantaget eller delegera ansvaret för att hantera undantaget till dess hierarkimetod. När runtime-undantaget inträffar, förhindrar det inte även programmet efter onödig användning av nyckelordet kast. Om anropsmetoden är huvud (), hanterar JVM som standard undantaget.

Den allmänna formen för nyckelordet är:

return_type method_name (parameterlista) kastar exceptionClass_list {// body of method}

Vi kan se att kastet nyckelord visas efter metodens signatur, och det kan innehålla en lista över undantagsklasser som kan förekomma i metoden. Listan över undantagsklasser skrivna efter nyckelordet kastas av komma.

Låt oss ta ett exempel för att förstå kast-nyckelordet.

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

I koden ovan gör huvudtråden att sova under en tid med metoden sleep (). När huvudmetoden nu är i vila är det möjligt att de andra trådarna kan avbryta huvudtråden. Men kastet nyckelord används i efter signatur av huvudmetoden (), så programmet skulle kompilera enkelt. Kastnyckelordet förklarar den kontrollerade undantagsklassen InterruptException. Om någon annan tråd avbryter huvudtråden under körning skulle nyckelordet överlämna det undantaget till den som ringer main () -metoden, som är JVM. JVM skulle avbryta programmet onormalt.

De punkter att komma ihåg om kastar nyckelord:

  • Kastnyckelordet används endast för att deklarera de kontrollerade undantagsklasserna. Användningen av kast-nyckelordet för ett okontrollerat undantag har ingen inverkan.
  • Om metoden inte vill hantera undantaget på egen hand delegerar den detta undantag till den som ringer metoden för den klassen med hjälp av kast-nyckelordet.
  • Dess användning tillåter bara smidig sammanställning av programmet.
  • Om ett undantag inträffar vid körning avslutas programmet onormalt, även efter användningen av kast-nyckelordet.
  • Det rekommenderas att använda try / catch block för normal avslutning av programmet om ett undantag inträffar vid körning.

Notera:

Nyckelordet kastar endast används i Java. C ++ och C # använder inte kast-nyckelordet.

  1. Nyckelordet kastar, överlämnar ansvaret för undantagshantering till JVM manuellt medan sökordet kastar, överlämnar ansvaret för undantagshantering till den som ringer metoden för den kod där ett undantag har inträffat.
  2. Kastnyckelordet följs av det undantagsobjekt som det överlämnar till JVM. Å andra sidan följs kast-nyckelordet av undantagsklasser som kan uppstå i metoden.
  3. Kastnyckelordet kan kasta ett enda undantagsobjekt i taget medan kastnyckelordet kan förklara flera undantagsklasser åtskilda med komma åt gången.

Slutsats:

Kastnyckelordet används bäst för det anpassade undantaget. Try / catch-blocket är bäst för att hantera undantagen jämfört med nyckelordet för kast.