logo

טיפול בחריגים ב-Java

  1. טיפול חריג
  2. יתרון בטיפול בחריגים
  3. היררכיה של כיתות חריגים
  4. סוגי חריגים
  5. דוגמה לחריגה
  6. תרחישים שבהם עלול להתרחש חריג

ה טיפול בחריגים ב-Java הוא אחד החזקים מנגנון לטיפול בשגיאות זמן הריצה כך שניתן יהיה לשמור על הזרימה הרגילה של היישום.

במדריך זה, נלמד על חריגים ב-Java, על סוגיו ועל ההבדל בין חריגים מסומנים לבלתי מסומנים.

כל הכוונות פקודה אקסל

מה זה חריג ב-Java?

משמעות המילון: חריג הוא מצב לא תקין.

ב-Java, חריג הוא אירוע שמשבש את הזרימה הרגילה של התוכנית. זהו אובייקט אשר נזרק בזמן ריצה.

מהו טיפול בחריגים?

Exception Handling הוא מנגנון לטיפול בשגיאות זמן ריצה כגון ClassNotFoundException, IOException, SQLException, RemoteException וכו'.

יתרון בטיפול בחריגים

היתרון המרכזי בטיפול בחריגים הוא כדי לשמור על הזרימה הרגילה של היישום . חריג בדרך כלל משבש את הזרימה הרגילה של היישום; לכן אנחנו צריכים לטפל בחריגים. בואו נשקול תרחיש:

 statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10; 

נניח שיש 10 משפטים בתוכנת Java ומתרחש חריג במשפט 5; שאר הקוד לא יבוצע, כלומר, משפטים 6 עד 10 לא יבוצעו. עם זאת, כאשר אנו מבצעים טיפול בחריגים, שאר ההצהרות יבוצעו. זו הסיבה שאנו משתמשים בטיפול בחריגים ב Java .

האם אתה יודע?
  • מה ההבדל בין חריגים מסומנים לבלתי מסומנים?
  • מה קורה מאחורי הקוד int data=50/0;?
  • למה להשתמש בלוק תפס מרובה?
  • האם יש אפשרות כאשר החסימה הסופית לא מבוצעת?
  • מהי התפשטות חריגים?
  • מה ההבדל בין מילת המפתח לזרוק לזריקה?
  • מהם 4 הכללים לשימוש בחריגים עם עקיפה של שיטה?

היררכיה של מחלקות ג'אווה חריגות

המחלקה java.lang.Throwable היא מחלקת השורש של היררכיית חריגים של Java שהורשתו על ידי שתי תת-מחלקות: Exception ו- Error. ההיררכיה של מחלקות Java Exception ניתנת להלן:

היררכיה של טיפול בחריגים

סוגי חריגים ב-Java

ישנם בעיקר שני סוגים של חריגים: מסומנים ולא מסומנים. שגיאה נחשבת כחריג הבלתי מסומן. עם זאת, על פי אורקל, ישנם שלושה סוגים של חריגים, כלומר:

  1. מסומן חריגה
  2. חריגה לא מסומנת
  3. שְׁגִיאָה
היררכיה של טיפול בחריגים

ההבדל בין חריגים מסומנים ובלתי מסומנים

1) חריגה מסומנת

המחלקות היורשות ישירות את המחלקה Throwable למעט RuntimeException ו- Error ידועות כחריגים מסומנים. לדוגמה, IOException, SQLException וכו'. חריגים מסומנים נבדקים בזמן ההידור.

2) חריגה לא מסומנת

המחלקות היורשות את RuntimeException ידועות כחריגים לא מסומנים. לדוגמה, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException וכו'. חריגים לא מסומנים אינם נבדקים בזמן ההידור, אך הם נבדקים בזמן ריצה.

3) שגיאה

אי אפשר לשחזר את השגיאה. כמה דוגמאות לשגיאות הן OutOfMemoryError, VirtualMachineError, AssertionError וכו'.

מילות מפתח חריגות ב-Java

Java מספקת חמש מילות מפתח המשמשות לטיפול בחריג. הטבלה הבאה מתארת ​​כל אחד מהם.

מילת מפתחתיאור
לְנַסוֹתמילת המפתח 'נסה' משמשת כדי לציין בלוק שבו עלינו למקם קוד חריג. זה אומר שאנחנו לא יכולים להשתמש ב-test block לבד. בלוק הנסי חייב להיות אחריו ב-catch או לסוף.
לתפוסבלוק 'תפוס' משמש לטיפול בחריג. יש להקדים אותו ב- try block, כלומר לא נוכל להשתמש ב-catch block לבד. ניתן לעקוב אחריו לחסום סופית מאוחר יותר.
סוף כל סוףהבלוק 'סוף סוף' משמש לביצוע הקוד הדרוש של התוכנית. הוא מבוצע בין אם מטופל חריג או לא.
לזרוקמילת המפתח 'זרוק' משמשת כדי לזרוק חריג.
זורקמילת המפתח 'זורקת' משמשת להכרזה על חריגים. הוא מציין כי עשוי להתרחש חריג בשיטה. זה לא זורק חריג. הוא משמש תמיד עם חתימת שיטה.

דוגמה לטיפול בחריגים ב-Java

בוא נראה דוגמה של Java Exception Handling שבה אנו משתמשים במשפט try-catch כדי לטפל בחריג.

JavaExceptionExample.java

 public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } } 
בדוק את זה עכשיו

תְפוּקָה:

 Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... 

בדוגמה שלמעלה, 100/0 מעלה אריתמטיקה חריגה אשר מטופלת על ידי בלוק טרי-catch.

תרחישים נפוצים של חריגים ב-Java

ישנם כמה תרחישים שבהם עשויים להתרחש חריגים לא מסומנים. הם כדלקמן:

1) תרחיש שבו מתרחשת ArithmeticException

אם נחלק מספר כלשהו באפס, מתרחשת חריגה אריתמטית.

 int a=50/0;//ArithmeticException 

2) תרחיש שבו מתרחשת NullPointerException

אם יש לנו ערך ריק בכל מִשְׁתַנֶה , ביצוע כל פעולה על המשתנה זורק NullPointerException.

 String s=null; System.out.println(s.length());//NullPointerException 

3) תרחיש שבו מתרחשת NumberFormatException

אם העיצוב של משתנה או מספר כלשהו אינו תואם, זה עלול לגרום ל- NumberFormatException. נניח שיש לנו א חוּט משתנה בעל תווים; המרת משתנה זה לספרה תגרום ל- NumberFormatException.

 String s='abc'; int i=Integer.parseInt(s);//NumberFormatException 

4) תרחיש שבו מתרחש ArrayIndexOutOfBoundsException

כאשר מערך חורג מגודלו, מתרחש ArrayIndexOutOfBoundsException. עשויות להיות סיבות אחרות להתרחשות ArrayIndexOutOfBoundsException. שקול את ההצהרות הבאות.

 int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException 

אינדקס חריגים של Java

  1. Java Try-Catch Block
  2. Java Multiple Catch Block
  3. Java Nested Test
  4. ג'אווה חסום לבסוף
  5. Java Throw מילת מפתח
  6. התפשטות חריגים של Java
  7. Java זורק מילת מפתח
  8. זריקת ג'אווה לעומת זריקה
  9. Java Final vs Finally לעומת Finalize
  10. טיפול בחריגים ב-Java עם עקיפה של שיטה
  11. חריגים מותאמים אישית של Java