I denne Java unntak opplæringen, å lære hva et unntak er i Java, hva er en kontrollert unntak, og hvordan det er forskjellig fra en ukontrollert unntak. Vi vil også lære noen eksempler på beste praksis rundt Java sjekket unntak.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
Hva er et unntak i Java?
«Et unntak er en uventet hendelse som oppstår under kjøring av et program som forstyrrer den normale flyten av instruksjonene.,»
I Java, alle feil og unntak som er representert med Throwable klasse. Når en feil oppstår i en metode, og metoden oppretter et objekt (av alle undertype av Throwable
), og hender det av kjøretid system. Objektet, som kalles et unntak objekt.
Unntak objektet inneholder informasjon om feilen, blant annet type og tilstand av programmet når feilen oppstod. Å skape et unntak objekt og overlate det til runtime systemet kalles å kaste et unntak.
1.1., Unntak håndtering
Vi har to valg når et unntak objektet er opprettet i programmet vårt.
- Enten vi vil håndtere det innenfor metode
- Eller vi kan gi det til den som ringer metode for å la det håndtaket.
Dette er svært viktig beslutning om å bli laget mens du stiller ansvaret for en metode. En metode som skal klart angi at hva alle eksepsjonell scenarier det vil håndtere og som det ikke. Det er definert under metode syntaks bruke kaster punkt.
for Å håndtere unntak, må Vi fange unntak i catch-delen av try-catch-blokk.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., De vil komme umiddelbart i ansiktet, når du begynner å kompilere programmet. Du kan definitivt ignorerer dem og la dem passere til JVM, men det er dårlig vane. Ideelt sett må du håndtere disse unntakene på egnet nivå i appen din, slik at du kan informere brukeren om feil og be ham om å prøve på nytt/ kommer senere.
Vanligvis, sjekket unntak betegne feil scenarier som er utenfor den umiddelbare kontroll av programmet. De oppstår vanligvis i samspill med eksterne ressurser/nettverk ressurser som for eksempel databasen problemer, nettverk tilkobling feil, manglende filer etc.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.
public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message – Unhandled exception type FileNotFoundException
.,
for Å gjøre programmet i stand til å kompilere, må du håndtere denne feilen situasjonen i try-catch
blokker. Nedenfor gis kode vil kompilere helt fint.
2.3. Ukontrollert Unntak
Java gir også UncheckedExceptions, forekomster som ikke kontrolleres av kompilatoren. De vil komme inn i livet/forekommer i programmet, når en buggy-koden er utført.
En metode er ikke tvunget av kompilatoren til å erklære ukontrollert unntak kastet av gjennomføringen. Generelt, slike metoder er nesten alltid ikke erklære dem, så vel.,
Ukontrollert Unntak er underklasser av RuntimeException. Eksempel på ukontrollert unntakene er : ArithmeticException
, ArrayStoreException
, ClassCastException
og så videre.
RuntimeException
er i seg selv underklassen av Exception
dvs. alle ukontrollert unntak klasser skal ha blitt sjekket unntak implisitt, MEN de er ikke.»Ukontrollert Unntak Eksempel
Checkout den oppgitte koden nedenfor. Koden ovenfor ikke gir noen compile time feil., Men når du eksempel, det kaster NullPointerException
. NullPointerException ikke er merket av for unntak i Java.
Husk at den største forskjellen mellom kontrollert og ukontrollert unntak er at sjekket unntak er tvunget av kompilatoren og brukes til å indikere eksepsjonelle forhold som er utenfor kontroll av programmet (for eksempel i/O-feil), mens ukontrollert unntak er oppstått under kjøring, og brukes til å indikere programmering feil (for eksempel, en null-peker).,
Java unntak håndtering av beste praksis
– >
- Sjekket unntak kan brukes når en metode som ikke kan gjøre det som navnet sier, det gjør det. f.eks. En metode som heter prepareSystem() som er forhåndsutfylt konfigurasjonsfiler og gjøre noen konfigurasjon ved å bruke dem, kan erklærer å kaste
FileNotFoundException
som innebærer at metoden bruker konfigurasjonsfiler fra filsystemet. - Sjekket unntak ideelt sett bør aldri brukes til programmering feil, men absolutt bør brukes for ressurs feil og for flytkontroll i slike tilfeller.,
- Kaste bare de unntak som en metode ikke kan håndtere ved noen mener. Metoden bør først prøve å håndtere det så snart det oppdages. Kaste unntak bare hvis det ikke er mulig å håndtere inne i metoden.
- En god måte å definere metode signaturer er å erklære unntak nær metode navn. Hvis metoden er oppkalt
openFile
, så er det forventet å kasteFileNotFoundException
?. Hvis metoden er oppkaltfindProvider
, så er det forventet å kasteNoSuchProviderException
.,Også, disse type unntak bør gjøres sjekket unntak som det styrker den som ringer til å håndtere de problemer som er knyttet til den semantiske av metoder.
- Regelen er hvis en klient med rimelighet kan forventes for å komme seg fra et unntak, gjør det til en kontrollert unntak. Hvis en klient kan ikke gjøre noe for å gjenopprette fra unntaket, gjør det til en ukontrollert unntak.
I virkeligheten, de fleste programmer vil gjenopprette fra ganske mye alle unntak inkludert
NullPointerException
,IllegalArgumentExceptions
og mange andre ukontrollert unntak., Handlingen / transaksjon, som ikke vil bli avbrutt, men programmet har å holde seg i live og være klar til å tjene den neste handlingen / transaksjonen.Den eneste gangen det er normalt lovlig å stenge ned et program som er under oppstart. For eksempel, hvis en konfigurasjonsfil som mangler, og programmet kan ikke gjøre noe fornuftig uten det, så er det lovlig å stenge ned programmet.,
Konklusjon
I dette innlegget, vi lærte forskjellen mellom sjekket vs ukontrollert unntak i Java, sammen med hvordan de skal håndtere en ukontrollert unntak unntak hierarkiet i Java med eksempler.
Føl deg fri til å slippe spørsmål i kommentarfeltet.
Glade for Læring !!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Leave a Reply