logo

Java tilpasset unntak

I Java kan vi lage våre egne unntak som er avledede klasser av Exception-klassen. Å lage vårt eget unntak er kjent som tilpasset unntak eller brukerdefinert unntak. I utgangspunktet brukes tilpassede Java-unntak for å tilpasse unntaket etter brukerbehov.

Tenk på eksempel 1 der InvalidAgeException-klassen utvider Exception-klassen.

Ved å bruke det tilpassede unntaket kan vi ha ditt eget unntak og melding. Her har vi sendt en streng til konstruktøren av superklassen, dvs. unntaksklassen som kan fås ved hjelp av getMessage()-metoden på objektet vi har laget.

I denne delen vil vi lære hvordan tilpassede unntak implementeres og brukes i Java-programmer.

Hvorfor bruke tilpassede unntak?

Java-unntak dekker nesten alle de generelle typene unntak som kan forekomme i programmeringen. Noen ganger må vi imidlertid lage tilpassede unntak.

Følgende er noen av grunnene til å bruke tilpassede unntak:

  • Å fange opp og gi spesifikk behandling til et undersett av eksisterende Java-unntak.
  • Forretningslogikk-unntak: Dette er unntakene knyttet til forretningslogikk og arbeidsflyt. Det er nyttig for applikasjonsbrukere eller utviklere å forstå det eksakte problemet.

For å lage tilpasset unntak, må vi utvide Exception-klassen som tilhører java.lang-pakken.

Tenk på følgende eksempel, der vi oppretter et tilpasset unntak kalt WrongFileNameException:

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

Merk: Vi må skrive konstruktøren som tar strengen som feilmelding og den kalles overordnet klassekonstruktør.

Eksempel 1:

La oss se et enkelt eksempel på Java-tilpasset unntak. I den følgende koden tar konstruktøren av InvalidAgeException en streng som et argument. Denne strengen sendes til konstruktør av overordnet klasse Unntak ved å bruke super()-metoden. Også konstruktøren av Exception-klassen kan kalles uten å bruke en parameter, og det er ikke obligatorisk å kalle super()-metoden.

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){>

Produksjon:

ubuntu hvilken kommando
Java tilpasset unntak