Welcome to Our Website

Markerade och avmarkerade undantag i java med exempel

det finns två typer av undantag: markerat undantag och avmarkerat undantag. I den här guiden kommer vi att diskutera dem. Huvudskillnaden mellan markerat och avmarkerat undantag är att de markerade undantagen kontrolleras vid kompileringstid medan avmarkerade undantag kontrolleras vid körning.

vilka är kontrollerade undantag?

markerade undantag kontrolleras vid kompilering., Det betyder att om en metod kastar ett kontrollerat undantag ska det Hantera undantaget med hjälp av try-catch block eller det ska deklarera undantaget med hjälp av kast nyckelord, annars kommer programmet att ge ett kompileringsfel.

Låt oss förstå detta med hjälp av ett exempel:

kontrollerat Undantagsexempel

i det här exemplet läser vi filen myfile.txt och visar innehållet på skärmen. I det här programmet finns tre ställen där ett kontrollerat undantag kastas som nämns i kommentarerna nedan., FileInputStream som används för att ange filsökväg och namn, kastar FileNotFoundException. Metoden read () som läser filinnehållet kastar IOExceptionoch metoden close() som stänger filinmatningsströmmen kastar också IOException.

utgång:

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

varför detta kompileringsfel? Som jag nämnde i början kontrolleras de kontrollerade undantagen under kompileringstiden. Eftersom vi inte hanterade/förklarade undantagen gav vårt program kompileringsfelet.
Hur löser du felet?, Det finns två sätt att undvika detta fel. Vi kommer att se båda sätten en efter en.

Metod 1: deklarera undantaget med hjälp av kast nyckelord.
som vi vet att alla tre förekomster av kontrollerade undantag är inne main () metod så ett sätt att undvika kompileringsfel är: Förklara undantaget i metoden med hjälp av kast nyckelord. Du kanske tänker att vår kod kastar FileNotFoundException och IOException både varför vi förklarar IOException ensam. Anledningen är att IOException är en överordnad klass av FileNotFoundException så det som standard täcker det., Om du vill kan du deklarera dem så här public static void main(String args) throws IOException, FileNotFoundException.

utgång:
filinnehåll visas på skärmen.

Metod 2: hantera dem med try-catch block.
det tillvägagångssätt vi har använt ovan är inte bra alls. Det är inte det bästa undantaget hantering praxis. Du bör ge meningsfullt meddelande för varje undantagstyp så att det skulle vara lätt för någon att förstå felet. Koden ska vara så här:

den här koden körs bra och visar filinnehållet.,

här är några andra markerade undantag –

  • SQLException
  • IOException
  • ClassNotFoundException
  • InvocationTargetException

vad är okontrollerade undantag?

omarkerade undantag kontrolleras inte vid kompilering. Det betyder att om ditt program kastar ett okontrollerat undantag och även om du inte hanterar/deklarerar det undantaget, kommer programmet inte att ge ett kompileringsfel. De flesta av de gånger dessa undantag uppstår på grund av de dåliga data som tillhandahålls av användaren under användarprogramminteraktionen., Det är upp till programmeraren att bedöma villkoren i förväg, som kan orsaka sådana undantag och hantera dem på lämpligt sätt. Alla okontrollerade undantag är direkta underklasser av RuntimeException klass.

Låt oss förstå detta med ett exempel:

Unchecked Exception Example

om du sammanställer den här koden skulle den kompilera framgångsrikt men när du kör den skulle den kasta ArithmeticException. Det visar tydligt att okontrollerade undantag inte kontrolleras vid kompilering, de inträffar vid körning. Låt oss se ett annat exempel.,

denna kod skulle också kompilera framgångsrikt eftersomArrayIndexOutOfBoundsException också är ett avmarkerat undantag.
Obs: Det betyder inte att kompilatorn inte kontrollerar dessa undantag så att vi inte ska hantera dem. I själva verket bör vi hantera dem mer noggrant. För t. ex. i ovanstående exempel bör det finnas ett undantagsmeddelande till användaren att de försöker visa ett värde som inte finns i array så att användaren skulle kunna rätta till 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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *