תכנות מתקדם ב-Java/חריגות זמן ריצה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Johnny Zoo (שיחה | תרומות)
אין תקציר עריכה
Johnny Zoo (שיחה | תרומות)
שורה 213:
כאמור, כל החריגות הרגילות (Checked exceptions) יורשות את המחלקה Exception (או מחלקות שיורשות ממנה). שימוש בירושה עם חריגות מאפשר לנו גמישות רבה, ובפרט:
* שיטה יכולה להכריז כי היא זורקת חריגה מסויימת, ובפועל תזרוק חריגה מטיפוס אחר, שיורש את הטיפוס עליו הכריזה.
* בתוך בלוק Try-Catch, בלוק Catch עבור טיפוס מסויים של חריגות תופס גם חריגות שיורשות חריגה זו.
* בתוך בלוק Try-Catch נתפסות תחילה החריגות שנמצאות נמוך יותר בסולם הירושה, וזה מאפשר לנו לטפל בצורה שונה בחריגות שנמצאות במקומות שונים בעץ הירושה.
 
נבין זאת טוב יותר באמצעות דוגמה. נניח שכתבנו שרת אינטרנט, ובמהלך הפרוייקט השתמשנו בכמה סוגי חריגות: