ב-Java, אנו יכולים ליצור חריגים משלנו שהם מחלקות נגזרות של המחלקה Exception. יצירת חריג משלנו ידועה כחריגה מותאמת אישית או חריגה מוגדרת על ידי משתמש. בעיקרון, נעשה שימוש בחריגים מותאמים אישית של Java כדי להתאים אישית את החריג בהתאם לצרכי המשתמש.
שקול את הדוגמה 1 שבה מחלקה InvalidAgeException מרחיבה את המחלקה Exception.
האם אנדרואיד יכול לשחק gamepigeon
באמצעות החריגה המותאמת אישית, אנו יכולים לקבל חריגה והודעה משלך. כאן, העברנו מחרוזת לבנאי של superclass כלומר מחלקת Exception שניתן להשיג באמצעות שיטת getMessage() על האובייקט שיצרנו.
בחלק זה, נלמד כיצד מיישמים ומשתמשים בחריגים מותאמים אישית בתוכניות Java.
למה להשתמש בחריגים מותאמים אישית?
חריגים של Java מכסים כמעט את כל הסוג הכללי של חריגים שעלולים להתרחש בתכנות. עם זאת, לפעמים עלינו ליצור חריגים מותאמים אישית.
להלן כמה מהסיבות להשתמש בחריגים מותאמים אישית:
תוכנית c להשוואת מחרוזות
- לתפוס ולהעניק טיפול ספציפי לקבוצת משנה של חריגים קיימים ב-Java.
- חריגים בלוגיקה עסקית: אלו הם החריגים הקשורים ללוגיקה עסקית ולזרימת עבודה. זה שימושי עבור משתמשי האפליקציה או המפתחים כדי להבין את הבעיה המדויקת.
על מנת ליצור חריג מותאם אישית, עלינו להרחיב את מחלקת ה-Exception ששייכת לחבילת java.lang.
שקול את הדוגמה הבאה, שבה אנו יוצרים חריג מותאם אישית בשם WrongFileNameException:
public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } }
הערה: עלינו לכתוב את הבנאי שלוקח את המחרוזת כהודעת השגיאה והיא נקראת בנאי מחלקה אב.
דוגמה 1:
בואו נראה דוגמה פשוטה של חריג מותאם אישית של Java. בקוד הבא, הבנאי של InvalidAgeException לוקח מחרוזת כארגומנט. מחרוזת זו מועברת לבנאי של מחלקת האב Exception באמצעות שיטת super() . כמו כן, ניתן לקרוא לבנאי של מחלקה Exception ללא שימוש בפרמטר וקריאת המתודה super() אינה חובה.
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){>
תְפוּקָה:
18){>