logo

Java mukautettu poikkeus

Javassa voimme luoda omia poikkeuksiamme, jotka ovat Exception-luokan johdettuja luokkia. Oman poikkeuksen luominen tunnetaan mukautettuna poikkeuksena tai käyttäjän määrittämänä poikkeuksena. Periaatteessa Java mukautettuja poikkeuksia käytetään mukauttamaan poikkeus käyttäjän tarpeiden mukaan.

Harkitse esimerkkiä 1, jossa InvalidAgeException-luokka laajentaa Exception-luokkaa.

Mukautetun poikkeuksen avulla meillä voi olla oma poikkeus ja viesti. Tässä olemme välittäneet merkkijonon superluokan eli poikkeusluokan rakentajalle, joka voidaan saada getMessage()-metodilla luomassamme objektissa.

Tässä osiossa opimme kuinka mukautettuja poikkeuksia toteutetaan ja käytetään Java-ohjelmissa.

Miksi käyttää mukautettuja poikkeuksia?

Java-poikkeukset kattavat lähes kaikki yleiset poikkeukset, joita ohjelmoinnissa voi esiintyä. Joskus meidän on kuitenkin luotava mukautettuja poikkeuksia.

Seuraavassa on muutamia syitä käyttää mukautettuja poikkeuksia:

  • Ottaa kiinni ja tarjota erityistä hoitoa olemassa olevien Java-poikkeuksien osajoukolle.
  • Liiketoimintalogiikan poikkeukset: Nämä ovat liiketoimintalogiikkaan ja työnkulkuun liittyviä poikkeuksia. Sovelluksen käyttäjien tai kehittäjien on hyödyllistä ymmärtää tarkka ongelma.

Mukautetun poikkeuksen luomiseksi meidän on laajennettava java.lang-pakettiin kuuluvaa Exception-luokkaa.

Harkitse seuraavaa esimerkkiä, jossa luomme mukautetun poikkeuksen nimeltä WrongFileNameException:

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

Huomautus: Meidän on kirjoitettava konstruktori, joka ottaa merkkijonon virhesanomana, ja sitä kutsutaan yläluokan konstruktoriksi.

Esimerkki 1:

Katsotaanpa yksinkertainen esimerkki Java mukautetusta poikkeuksesta. Seuraavassa koodissa InvalidAgeExceptionin rakentaja ottaa argumentiksi merkkijonon. Tämä merkkijono välitetään yläluokan Exception rakentajalle super()-menetelmällä. Myös Exception-luokan konstruktoria voidaan kutsua ilman parametria eikä super()-metodin kutsuminen ole pakollista.

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

Lähtö:

Java mukautettu poikkeus