Java programoje galime sukurti savo išimtis, kurios yra išvestinės Exception klasės klasės. Savo išimties kūrimas yra žinomas kaip pasirinktinė išimtis arba vartotojo nustatyta išimtis. Iš esmės „Java“ tinkintos išimtys naudojamos išimčiai pritaikyti pagal vartotojo poreikius.
Apsvarstykite 1 pavyzdį, kuriame InvalidAgeException klasė išplečia Exception klasę.
Java enum vertė
Naudodami pasirinktinę išimtį galime turėti jūsų išimtį ir pranešimą. Čia mes perdavėme eilutę superklasės konstruktoriui, ty išimties klasę, kurią galima gauti naudojant getMessage() metodą mūsų sukurtame objekte.
Šiame skyriuje sužinosime, kaip tinkintos išimtys yra įdiegiamos ir naudojamos Java programose.
Kodėl naudoti tinkintas išimtis?
„Java“ išimtys apima beveik visas bendro pobūdžio išimtis, kurios gali atsirasti programuojant. Tačiau kartais turime sukurti pasirinktines išimtis.
Toliau pateikiamos kelios priežastys, kodėl verta naudoti pasirinktines išimtis:
gyvas kriketas.is
- Sugauti esamų „Java“ išimčių poaibį ir suteikti jai specifinį gydymą.
- Verslo logikos išimtys: tai išimtys, susijusios su verslo logika ir darbo eiga. Programos vartotojams ar kūrėjams naudinga suprasti tikslią problemą.
Norėdami sukurti pasirinktinę išimtį, turime išplėsti Exception klasę, kuri priklauso java.lang paketui.
Apsvarstykite šį pavyzdį, kuriame sukuriame tinkintą išimtį pavadinimu WrongFileNameException:
public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } }
Pastaba: turime parašyti konstruktorių, kuris paima eilutę kaip klaidos pranešimą, ir jis vadinamas pirminės klasės konstruktoriumi.
1 pavyzdys:
Pažiūrėkime paprastą „Java“ tinkintos išimties pavyzdį. Toliau pateiktame kode InvalidAgeException konstruktorius naudoja eilutę kaip argumentą. Ši eilutė perduodama pirminės klasės Išimties konstruktoriui naudojant super() metodą. Taip pat klasės Exception konstruktorių galima iškviesti nenaudojant parametro, o super() metodo iškvietimas nėra privalomas.
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('Caught the exception'); System.out.println(ex.getMessage()); } System.out.println('rest of the code...'); } } </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){>
Išvestis:
18){>