I Java undtagelser tutorial, lær hvad en undtagelse er i Java, hvad der er en valgt undtagelse og hvordan den er forskellig fra et ukontrolleret undtagelse. Vi vil også lære nogle bedste praksis omkring Java-kontrollerede undtagelser.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
Hvad er en undtagelse i Java?
“En undtagelse er en uventet begivenhed, der indtræffer under udførelsen af et program, der forstyrrer den normale strøm af instruktioner.,”
i Java er alle fejl og undtagelser repræsenteret med Kastbar klasse. Når der opstår en fejl inden for en metode, opretter metoden et objekt (af en hvilken som helst undertype af Throwable
) og overleverer det til runtime-systemet. Objektet, kaldet en undtagelse objekt.
undtagelse objekt indeholder oplysninger om fejlen, herunder dens type og status for programmet, når fejlen opstod. Oprettelse af et undtagelsesobjekt og overlevering af det til runtime-systemet kaldes at kaste en undtagelse.
1, 1., Undtagelseshåndtering
Vi har to valg, når der oprettes et undtagelsesobjekt i vores applikation.
- enten håndterer vi det inden for metoden
- , eller vi kan videregive det til opkaldsmetoden for at lade det håndtere.
Dette er en meget vigtig beslutning, der skal træffes, mens man fastlægger ansvaret for en metode. En metode skal tydeligt angive, at hvad alle ekstraordinære scenarier det vil håndtere, og som det ikke vil. Det er defineret i metodesynta.ved hjælp af kasteklausul.
for at håndtere undtagelsen skal vi fange undtagelsen i fangstsektionen I try-catch block.,
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 kommer straks ind i dit ansigt, når du begynder at kompilere dit program. Du kan helt sikkert ignorere dem og lade dem passere til JVM, men det er dårlig vane. Ideelt set skal du håndtere disse undtagelser på passende niveau inde i din ansøgning, så du kan informere brugeren om fiasko og bede ham om at prøve igen/ komme senere.
generelt betyder kontrollerede undtagelser fejlscenarier, som er uden for programmets umiddelbare kontrol. De opstår normalt interagere med eksterne ressourcer/netværksressourcer f.eks database problemer, netværksforbindelse fejl, manglende filer osv.,
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 at gøre programmet i stand til at kompilere, skal du håndtere denne fejlsituation i try-catch
block. Nedenfor givet kode vil kompilere helt fint.
2, 3. Ikke-markerede undtagelser
Java giver også Uncheckedecepceptions, hvis forekomster ikke kontrolleres af kompilatoren. De vil komme ind i livet / forekomme i dit program, når en buggy kode udføres.
en metode er ikke tvunget af compiler til at erklære de ukontrollerede undtagelser kastet af dens gennemførelse. Generelt erklærer sådanne metoder næsten altid ikke dem.,ikke-markerede undtagelser er underklasser af Runtimee .ception. Eksempel på ukontrollerede undtagelser er: ArithmeticException
, ArrayStoreException
, ClassCastException
og så videre.
“Det mærkelige er, at RuntimeException
er selv underklasse af Exception
dvs alle ukontrolleret undtagelse klasser skulle have været kontrolleret undtagelser implicit, MEN det er de ikke.”
ukontrolleret undtagelse eksempel
Checkout den givne kode nedenfor. Ovenstående kode giver ikke nogen kompileringstidsfejl., Men når du eksemplet, det kaster NullPointerException
. Nullpointere .ception er ukontrolleret undtagelse i Java.
Husk, at den største forskel mellem markeret og ikke-markeret undtagelser er der kontrollerede undtagelser, er tvunget af compileren, og bruges til at angive særlige forhold, der er ude af kontrol af programmet (for eksempel, i/O-fejl), mens markeret undtagelser, der er sket under kørslen, og bruges til at angive, programmering fejl (for eksempel, en null-pointer).,
Java-undtagelseshåndtering bedste praksis
- kontrollerede undtagelser kan bruges, når en metode ikke kan gøre, hvad navnet siger, at den gør. en metode, der hedder prepareSystem (), som forudfylder konfigurationsfiler og gør nogle konfigurationer ved hjælp af dem, kan erklære at kaste
FileNotFoundException
hvilket indebærer, at metoden bruger konfigurationsfiler fra filsystemet. - kontrollerede undtagelser bør ideelt set aldrig bruges til programmeringsfejl, men bør absolut bruges til ressourcefejl og til Flo .kontrol i sådanne tilfælde.,
- kast kun de undtagelser, som en metode ikke kan håndtere på nogen måde. Metode skal først forsøge at håndtere det, så snart den støder på. Kast undtagelsen, hvis det ikke er muligt at håndtere inde metode.
- en god måde at definere metode signaturer er at erklære undtagelser tæt på metode navn. Hvis din metode er navngivet
openFile
, forventes det at kasteFileNotFoundException
?. Hvis din metode er navngivetfindProvider
, forventes det at kasteNoSuchProviderException
.,også denne type undtagelser bør gøres kontrollerede undtagelser, da det tvinger den, der ringer til at håndtere de problemer, der er forbundet med semantiske af dine metoder.
- regel er hvis en klient med rimelighed kan forventes at komme sig efter en undtagelse, gør det til en kontrolleret undtagelse. Hvis en klient ikke kan gøre noget for at komme sig efter undtagelsen, skal du gøre det til en ukontrolleret undtagelse.
i virkeligheden skal de fleste applikationer komme sig fra stort set alle undtagelser, herunder
NullPointerException
,IllegalArgumentExceptions
og mange andre ukontrollerede undtagelser., Handlingen / transaktionen, der mislykkedes, afbrydes, men applikationen skal holde sig i LIVE og være klar til at betjene den næste handling / transaktion.den eneste gang, det normalt er lovligt at lukke et program, er under opstart. For eksempel, hvis en konfigurationsfil mangler, og applikationen ikke kan gøre noget fornuftigt uden den, er det lovligt at lukke applikationen.,
konklusion
i dette indlæg lærte vi forskellen mellem kontrollerede vs ukontrollerede undtagelser i Java, sammen med hvordan man håndterer ukontrollerede undtagelser, undtagelseshierarki i Java med eksempler.
Du er velkommen til at droppe dine spørgsmål i kommentarer.
glad 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