Welcome to Our Website

Kontrollert og ukontrollert unntak i java med eksempler

Det er to typer unntak: sjekket unntak og ukontrollert unntak. I denne guiden skal vi diskutere dem. Den viktigste forskjellen mellom kontrollert og ukontrollert unntak er at sjekket unntak er sjekket ved compile-time mens ukontrollert unntak er sjekket ved kjøring.

Hva er sjekket unntak?

Merket unntak er sjekket ved compile-time., Det betyr at hvis en metode er å kaste en kontrollert unntak så det bør håndtere unntak ved hjelp av try-catch-blokk, eller det bør erklære unntak bruke kaster søkeord, ellers vil programmet gi en kompileringsfeil.

Kan forstå dette ved hjelp av et eksempel:

Sjekket Unntak Eksempel

I dette eksempelet har vi leser filen myfile.txt og vise innholdet på skjermen. I dette programmet er det tre steder hvor en kontrollert unntak blir kastet som nevnt i kommentarene nedenfor., FileInputStream som brukes for å spesifisere fil-banen til og navnet, kaster FileNotFoundException. Les () – metoden som leser filen innholdet kaster IOException og lukk() metode som lukker filen som input stream også kaster IOException.

Output:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Unhandled exception type FileNotFoundExceptionUnhandled exception type IOExceptionUnhandled exception type IOException

Hvorfor denne samlingen feil? Som jeg nevnte i begynnelsen at sjekket unntak blir kontrollert under kompilere tid. Siden vi ikke håndteres/erklært unntak, våre programmet ga kompileringsfeil.
Hvordan for å løse problemet?, Det er to måter å unngå denne feilen. Vi vil se både måter en etter en.

Metode 1: Erklærer unntak bruke kaster søkeord.
Som vi vet at alle tre forekomster av kontrollert unntak er inne i main () – metoden, så en måte å unngå kompileringsfeil er: Erklærer unntak i den metoden du bruker kaster søkeord. Du tenker kanskje at koden vår er å kaste FileNotFoundException og IOException både så hvorfor er vi erklære IOException alene. Årsaken er at IOException er en forelder klasse av FileNotFoundException så det som standard dekker det., Hvis du vil kan du erklære dem som dette public static void main(String args) throws IOException, FileNotFoundException.

Output:
– Filen innholdet vises på skjermen.

Metode 2: Håndtere dem ved hjelp av try-catch-blokkene.
tilnærmingen vi har brukt ovenfor er ikke bra i det hele tatt. Det er ikke den beste unntak håndtering praksis. Du bør gi meningsfull melding for hvert unntak type, slik at det ville være lett for noen å forstå feil. Koden bør være som dette:

Denne koden vil kjøre som normalt, og vil vise fil-innhold.,

Her er noen andre Sjekket Unntak –

  • SQLException
  • IOException
  • ClassNotFoundException
  • InvocationTargetException

Hva er Avmerket unntak?

Ukontrollert unntak er ikke avmerket på kompilere tid. Det betyr at hvis programmet ditt er å kaste en ukontrollert unntak, og selv om du ikke håndtere/erklære at unntak, programmet vil ikke gi en kompileringsfeil. Mesteparten av tiden disse unntak oppstår som følge av dårlig informasjon gitt av brukeren under bruker-program for samhandling., Det er opp til programmereren å bedømme forholdene på forhånd, som kan forårsake slike unntak og håndtere dem på riktig måte. Alle Ukontrollert unntak er direkte sub-klasser av RuntimeException klasse.

Kan forstå dette med et eksempel:

Ukontrollert Unntak Eksempel

Hvis du kompilere denne koden, det vil kompilere vellykket imidlertid når du skal kjøre den, det ville kaste ArithmeticException. Som tydelig viser at ukontrollert unntak er ikke avmerket på compile-time, de oppstår under kjøring. Lar se et annet eksempel.,

Denne koden ville også lage en vellykket måte siden ArrayIndexOutOfBoundsException er også en ukontrollert unntak.
Merk: Det betyr ikke at kompilatoren er ikke kontrollere disse unntakene, slik at vi ikke kan håndtere dem. Faktisk vi bør behandle dem mer nøye. For eksempel I ovennevnte eksempel bør det være et unntak melding til brukeren om at de prøver å vise en verdi som ikke finnes i tabellen, slik at brukeren vil være i stand til å korrigere problemet.,

Output:

The specified index does not exist in array. Please correct the error.

Here are the few unchecked exception classes:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ArithmeticException
  • IllegalArgumentException
  • NumberFormatException

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *