logo

Java anpassat undantag

I Java kan vi skapa våra egna undantag som är härledda klasser av klassen Exception. Att skapa ett eget undantag kallas anpassat undantag eller användardefinierat undantag. I grund och botten används anpassade Java-undantag för att anpassa undantaget efter användarens behov.

Betrakta exempel 1 där klassen InvalidAgeException utökar klassen Exception.

Diskett

Genom att använda det anpassade undantaget kan vi ha ditt eget undantag och meddelande. Här har vi skickat en sträng till superklassens konstruktor, dvs. Exception class som kan erhållas med metoden getMessage() på objektet vi har skapat.

I det här avsnittet kommer vi att lära oss hur anpassade undantag implementeras och används i Java-program.

Varför använda anpassade undantag?

Java-undantag täcker nästan alla allmänna typer av undantag som kan förekomma i programmeringen. Men ibland behöver vi skapa anpassade undantag.

Följande är några av anledningarna till att använda anpassade undantag:

alfa beta beskärning
  • För att fånga upp och ge specifik behandling till en delmängd av befintliga Java-undantag.
  • Affärslogikundantag: Dessa är undantagen relaterade till affärslogik och arbetsflöde. Det är användbart för applikationsanvändare eller utvecklare att förstå det exakta problemet.

För att skapa anpassade undantag måste vi utöka Exception-klassen som tillhör java.lang-paketet.

Tänk på följande exempel, där vi skapar ett anpassat undantag med namnet WrongFileNameException:

 public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } } 

Notera: Vi måste skriva konstruktorn som tar strängen som felmeddelande och den kallas parent class constructor.

Exempel 1:

Låt oss se ett enkelt exempel på Java anpassat undantag. I följande kod tar konstruktorn av InvalidAgeException en sträng som ett argument. Den här strängen skickas till konstruktorn för den överordnade klassen Exception med metoden super(). Konstruktören av klassen Exception kan också anropas utan att använda en parameter och anropet super()-metoden är inte obligatoriskt.

TestCustomException1.java

 // class representing custom exception class InvalidAgeException extends Exception { public InvalidAgeException (String str) { // calling the constructor of parent Exception super(str); } } // class that uses custom exception InvalidAgeException public class TestCustomException1 { // method to check the age static void validate (int age) throws InvalidAgeException{ if(age <18){ throw an object of user defined exception new invalidageexception('age is not valid to vote'); } else { system.out.println('welcome main method public static void main(string args[]) try calling the validate(13); catch (invalidageexception ex) system.out.println('caught exception'); printing message from invalidageexception system.out.println('exception occured: ' + ex); system.out.println('rest code...'); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/13/java-custom-exception.webp" alt="Java Custom Exception"> <h3>Example 2:</h3> <p> <strong>TestCustomException2.java</strong> </p> <pre> // class representing custom exception class MyCustomException extends Exception { } // class that uses custom exception MyCustomException public class TestCustomException2 { // main method public static void main(String args[]) { try { // throw an object of user defined exception throw new MyCustomException(); } catch (MyCustomException ex) { System.out.println(&apos;Caught the exception&apos;); System.out.println(ex.getMessage()); } System.out.println(&apos;rest of the code...&apos;); } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/13/java-custom-exception-2.webp" alt="Java Custom Exception"> <hr></18){>

Produktion:

Java anpassat undantag