Care este diferența dintre aruncare vs. aruncă în Java

Publicat: 2013-07-23

Care este diferența dintre aruncare vs. aruncă în Java

Unul o declară, iar celălalt o face

Există cinci cuvinte cheie legate de gestionarea excepțiilor în Java, de exemplu try, catch, finally, throw and throws . În afară de diferența dintre final, finally și finalize , throw vs throws este una dintre întrebările frecvente pentru interviul Java.

  • cuvântul cheie throw este folosit pentru a arunca excepție de la orice metodă sau bloc static în Java, în timp ce cuvântul cheie throw , folosit în declarația metodei, indică excepția care poate fi aruncată prin această metodă. Nu sunt interschimbabile.
  • Dacă orice metodă aruncă o excepție bifată, așa cum se arată în exemplul de mai jos, atunci apelantul poate fie gestiona această excepție prin capturarea ei, fie o poate arunca din nou declarând o altă clauză throws în declarația metodei.
  • Clauza Throw poate fi folosită în orice parte a codului în care simțiți că trebuie aruncată o anumită excepție la metoda de apelare.

Subestimarea excepțiilor Java:

Dacă o metodă aruncă o excepție, ar trebui fie înconjurată de un bloc try catch pentru a o prinde, fie acea metodă ar trebui să aibă clauza throws în semnătură. Fără clauza throws din semnătură, compilatorul Java JVM nu știe ce să facă cu excepția. Clauza throws spune compilatorului că această excepție specială va fi gestionată de metoda de apelare.

Mai jos este un exemplu foarte simplu care explică comportamentul Throw, Throws, Try, Catch, Finally block în Java.

Rezultat:

Null Pointer Exception - Crunchify

Acum înlocuiți linia 45 și 46 cu linia de mai jos pentru a vedea rezultatul de mai jos:

Rezultat nou:

Lista tuturor tutorialelor Java care v-ar putea interesa.

Sfaturi bonus pentru excepții:

  • Execuția normală a programului este imediat ramificată atunci când este aruncată o excepție.
  • Excepțiile verificate trebuie să fie capturate sau transmise. Acest lucru se poate face într-o instrucțiune try... catch sau prin definirea excepției în definiția metodei.
  • Excepția este capturată de primul bloc catch a cărui clasă de excepție asociată se potrivește cu clasa sau cu o superclasă a excepției aruncate.
  • Dacă nu se găsește niciun bloc catch care se potrivește în lanțul de excepții, firul de execuție care conține excepția aruncată este încheiat.
  • Blocul final după o instrucțiune try... catch este executat indiferent dacă o excepție este capturată sau nu.
  • Revenirea într-un bloc final întrerupe lanțul de excepții la invocator chiar și pentru excepții neprinse.