logo

Java pielāgots izņēmums

Programmā Java mēs varam izveidot savus izņēmumus, kas ir atvasinātas Exception klases klases. Mūsu pašu izņēmuma izveide ir pazīstama kā pielāgots izņēmums vai lietotāja definēts izņēmums. Būtībā Java pielāgotie izņēmumi tiek izmantoti, lai pielāgotu izņēmumu atbilstoši lietotāja vajadzībām.

Apsveriet 1. piemēru, kurā InvalidAgeException klase paplašina Exception klasi.

Izmantojot pielāgoto izņēmumu, mums var būt jūsu izņēmums un ziņojums. Šeit mēs esam nodevuši virkni virsklases konstruktoram, t.i., izņēmuma klasei, kuru var iegūt, izmantojot metodi getMessage() mūsu izveidotajā objektā.

Šajā sadaļā mēs uzzināsim, kā Java programmās tiek ieviesti un izmantoti pielāgoti izņēmumi.

Kāpēc izmantot pielāgotus izņēmumus?

Java izņēmumi aptver gandrīz visus vispārīgos izņēmumu veidus, kas var rasties programmēšanas laikā. Tomēr dažreiz mums ir jāizveido pielāgoti izņēmumi.

Tālāk ir minēti daži iemesli, kādēļ izmantot pielāgotus izņēmumus.

  • Noķert un nodrošināt īpašu attieksmi pret esošo Java izņēmumu apakškopu.
  • Biznesa loģikas izņēmumi: šie ir izņēmumi, kas saistīti ar biznesa loģiku un darbplūsmu. Lietojumprogrammu lietotājiem vai izstrādātājiem ir noderīgi saprast precīzu problēmu.

Lai izveidotu pielāgotu izņēmumu, mums ir jāpaplašina Exception klase, kas pieder pakotnei java.lang.

Apsveriet šādu piemēru, kur mēs izveidojam pielāgotu izņēmumu ar nosaukumu WrongFileNameException:

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

Piezīme. Mums ir jāieraksta konstruktors, kas izmanto virkni kā kļūdas ziņojumu, un to sauc par vecākklases konstruktoru.

1. piemērs:

Apskatīsim vienkāršu Java pielāgota izņēmuma piemēru. Nākamajā kodā InvalidAgeException konstruktors izmanto virkni kā argumentu. Šī virkne tiek nodota vecākklases Izņēmuma konstruktoram, izmantojot super() metodi. Arī Exception klases konstruktoru var izsaukt, neizmantojot parametru un super() metodes izsaukšana nav obligāta.

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

Izvade:

Java pielāgots izņēmums