Hur hanterar jag anpassade undantag i Java?



Den här artikeln hjälper dig att förstå anpassade undantag i Java och den kommer att stödja förklaringen med praktisk demonstration av konceptet.

ger användaren möjlighet att skapa sina egna undantag. Sådana undantag kallas anpassade undantag eller användardefinierade undantag. I den här artikeln kommer vi att undersöka anpassade undantag i Java.

Följande tips kommer att behandlas i den här artikeln,





Komma igång den här artikeln om anpassade undantag i Java.

Anpassade undantag i Java

Anpassade undantag kan skapas enligt följande,



[Java]
// klass som representerar användardefinierat undantag
klass InvalidAgeException utökar undantag {
InvalidAgeException (String s) {
super (er)
}
}
[/ java]

// klass som använder InvalidAgeException class Test {static void validate (int age) kastar InvalidAgeException {if (age<18) throw new InvalidAgeException('Invalid') else System.out.println('Eligible to Drive') } public static void main(String args[]){ try{ validate(15) }catch(Exception m){System.out.println('Exception: '+m)} System.out.println('Exit') } } 

Produktion:

Undantag: InvalidAgeException: Ogiltigt



skillnad mellan kast och kast i java

Utgång

Fortsätter med den här artikeln om anpassade undantag i Java.

Behov av anpassade undantag

Ofta finner programmeraren behovet av att specificera sitt eget undantag.

Anledningarna till att införa dessa undantag kan vara följande:

  • Det finns vissa undantag som definieras endast för affärslogik och arbetsflöde. Detta gör det möjligt för användarna att bestämma källan till problemet.
  • Att fånga och hantera befintliga eller tidigare definierade java-undantag.

Java ger användaren två undantag:

  • Anpassat kontrollerat undantag
  • Anpassat okontrollerat undantag

Fortsätter med den här artikeln om anpassade undantag i Java.

gå till funktion i python

Anpassade kontrollerade undantag

De anpassade kontrollerade undantagen är undantag som förlänger java.lang.Exception. De kan återvinnas till sin natur och hanteras uttryckligen. I följande exempel skrivs en kod för att returnera den första raden i filen som utdata:

prova (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {}

Koden kastar undantaget FileNotFound. Orsaken till detta undantag är okänd för användaren. Vi känner inte till källan till undantaget, oavsett om det har orsakats på grund av att filen inte finns, eller på grund av ett ogiltigt filnamn. För att implementera anpassat undantag utökas klassen java.lang.Exception.

offentlig klass InvalidFileNameException utökar undantag {public InvalidFileNameException (String errorMessage) {super (errorMessage)}}

Ett anpassat kontrollerat undantag som heter InvalidFileNameException skapas.

En konstruktör måste tillhandahållas när undantaget skapas. I vårt fall tar konstruktören String som felmeddelande och ringer den överordnade klasskonstruktören.

prova (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ( Ogiltigt filnamn: + filnamn}}

Även om användaren nu är medveten om det exakta undantaget har vi förlorat grundorsaken till undantaget. Detta kan åtgärdas genom att lägga till java.lang.Throwable till konstruktören. InvalidFileNameException kan nu användas med grundorsaken till undantaget:

public InvalidFileNameException (String errorMessage, Throwable err) {super (errorMessage, err)}

Fortsätter med den här artikeln om anpassade undantag i Java

Anpassade okontrollerade undantag

De anpassade kontrollerade undantagen utökar java.lang.RuntimeException. De är oåtervinnbara till sin natur.

offentlig klass InvalidFileExtensionException utökar RuntimeException {public InvalidFileExtensionException (String errorMessage, Throwable err) {super (errorMessage, err)}}

Detta undantag används enligt följande:

prova (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) {return file.nextLine ()} else {throw new IllegalArgumentException ('File is not readable.')}} fångst ( FileNotFoundException err) {if (! IsCorrectFileName (fileName)) {throw new InvalidFileNameException ('Ogiltigt filnamn:' + fileName, err)}} fångst (IllegalArgumentException err) {if (! ContainExtension (fileName)) {throw new InvalidFileExtensionExcame har inget tillägg: '+ fileName, err)}}

Användardefinierade undantag är viktiga eftersom de gör det möjligt för oss att definiera våra undantag.

hur man varnar i javascript

Således har vi kommit till ett slut på den här artikeln. Om du vill lära dig mer, kolla in Java Training av Edureka, ett pålitligt online-lärande företag. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.