Rekommenderas, 2024

Redaktionen

Skillnad mellan kasta och kasta i Java

Kasta och kasta är de nyckelord som används i undantagshantering. Kasta sökordet används för att manuellt överlämna förekomsten av undantaget som skapats av programmeraren till JVM. Kasta nyckelord som används för att överlämna ansvaret för att hantera det undantag som uppstod i metoden för uppringningsmetoden. Te grundläggande skillnad mellan kasta och kasta är att kasta sökordet använder undantag objektet medan kastet sökord använder namnet på undantag klasser.

Jämförelsediagram

Jämförelsegrundenkastakastar
GrundläggandeKasta sökordet överlämnar vårt skapade undantag objekt till JVM manuellt.Kasta sökord används för att delegera ansvaret för undantagshantering till den som ringer till metoden.
Syntaxkasta Throwable-instance;return_type method_name (parameter-lista) kastar ExceptionClass_list
{
// metodkropp
}
Följd avKasta sökordet följs av undantag objekt.Kasta sökord följs av listan över undantagsklasser som kan uppstå i metoden.
Antal undantag kastasKasta sökordet kan kasta ett enda undantag instans.Kasta sökord kan deklarera flera undantagsklasser separerade med ett komma.

Definition av kasta

Sökordet " kasta " används för att manuellt överlämna vårt skapade undantag till JVM (Java Virtual Machine). Om "kasta" inte används för att kasta ett undantagstillfälle och undantaget uppstår, körs runtime-systemet internt i undantagsfallet till JVM och programmet avslutas onormalt. Den allmänna formen av kasta sökordet är:

 kasta Throwable_instance; 

Ovanför Throwable_instance måste vara ett föremål för klassen Throwable. Primitiva typer som int, float eller char och den icke-kastbara klassinstansen kan inte kastas med kasta sökord.

Låt oss ta ett exempel för att förstå sökordet.

 Klasstest {Public static void main (String [] args) {släng nya ArithmeticException ("/ by zero"); }} 

I ovanstående kod kastar nyckelordet ett exempel på Exception-klassen "AritmeticException". Om kasta sökordet inte hade använts skulle huvudmetoden () ha skapat ett undantagsobjekt till JVM internt.

Poängen att komma ihåg om nyckelordet kasta:

  • Det överlämnar undantagsobjektet manuellt till JVM.
  • Den används bäst för de användardefinierade undantagen eller anpassade undantag.
  • Om minnet inte är allokerat till undantagsobjektet kastat med kasta sökord, uppträder ett runtime-undantag, NullPointerException.
  • Kasta sökordet stoppar programmets genomförande omedelbart efter det att det inträffat. Vi kan inte direkt skriva något uttalande efter kasta uttalandet. Om vi ​​skriver något staement direkt efter kasta uttalandet kommer kompilatorn att visa ett fel, oåtkomligt uttalande under sammanställningen.
  • Endast objekt av Throwable Class kan kastas med kasta sökord. Om objektet kastas inte är ett föremål för klassen Throwable får vi ett kompileringsfel "Incompatible type found. . krävs java.lang.Throwable "

Notera:

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

Definition av kast

Sökordet " kastar " används för att delegera ansvaret för att hantera det undantag som uppstod i metoden, till dess uppringningsmetod. Anropsmetoden är ansvarig för hanteringen av undantaget kan det vara någon annan metod eller JVM. Det förklarar listan över undantagsklasser som kan uppstå i metoden.

Användningen av sökordet kastar övertygad kompilatorn om att undantaget inträffade i metoden som ska hanteras av uppringningsmetoden. Därför inträffar inget kompileringsfel. Men uppringningsmetoden måste hantera undantaget eller delegera ansvaret för att hantera undantaget till dess hierarkimetod. När runtime-undantaget uppstår, hindrar det inte att programmets abnorma uppsägning, även efter användningen av kasta nyckelord, upphör. Om uppringningsmetoden är huvud (), hanterar JVM som standard undantaget.

Den allmänna formen av kasta sökordet är:

 return_type method_name (parameter-lista) kastar undantagClass_list {// metodens metod} 

Vi kan se att kasta sökord visas efter underskrift av metoden, och det kan innehålla en lista över undantagsklasser som kan uppstå i metoden. Listan över undantagsklasserna som skrivits efter nyckelordet kastas av kommatecken.

Låt oss ta ett exempel för att förstå kastet sökord.

 calss Test {public static void main (String [] args) kastar AvbrutenException {tråd sömn (10000); }} 

I ovanstående kod görs huvudgängan för att sova under en viss tid med hjälp av sleep () -metoden. Nu när huvudmetoden är i sömn är det möjligt att de andra trådarna kan störa huvudgängan. Men kasta nyckelordet används efter signaturen av main () -metoden så skulle programmet kompilera enkelt. Kasta sökordet deklarerar den avkodade undantagsklassen InterruptedException. Nu, om någon annan tråd avbryter huvudgänget under körtiden, skulle kasta sökordet överlämna det undantaget till den som ringer huvudmetoden (), som är JVM. JVM skulle avsluta programmet onormalt.

Poängen att komma ihåg om kastar sökord:

  • Kasta sökordet används bara för att deklarera de klassificerade undantagsklasserna. Användningen av kasta sökordet för ett obekant undantag har ingen inverkan.
  • Om metoden inte vill hantera undantaget på egen hand, delegerar det undantaget till den uppringande metoden för den klassen med hjälp av sökordet.
  • Dess användning tillåter bara smidig sammanställning av programmet.
  • Om ett undantag uppstår vid körning, avslutas programmet onormalt, även efter användningen av kasta sökordet.
  • Det rekommenderas att använda försök / fångstblock för normal uppsägning av programmet om ett undantag uppstår vid körning.

Notera:

Nyckelordet kast används endast i Java. C ++ och C # använder inte kasta sökordet.

Viktiga skillnader mellan kasta och kastar

  1. Nyckelordet kastar, överlämnar ansvaret för undantagshantering till JVM manuellt medan nyckelordet kastar, överlämnar ansvaret för undantagshantering till uppringningsmetoden för koden där ett undantag har inträffat.
  2. Kasta sökordet följs av undantag objektet som överlämnas till JVM. Å andra sidan kastar sökord följs av undantagsklasserna som det kan ske i metoden.
  3. Kasta sökordet kan kasta ett enda undantagobjekt åt gången medan kasta nyckelordet kan deklarera flera undantagsklasser åtskilda av ett komma åt gången.

Slutsats:

Kasta sökordet används bäst för det anpassade undantaget. Try / catch-blocket är bäst för att hantera undantagen jämfört med att kasta sökord.

Top