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

תוכן שנמחק תוכן שנוסף
Crazy Ivan (שיחה | תרומות)
מ קטגוריה
שורה 202:
התוצאה של הכרזה כזו היא שכעת מי שמשתמש בשיטה חייב לדאוג לתפיסה של החריגות אותה היא זורקת, אם זה באמצעות בלוק Try-Catch, ואם באמצעות הוספה של הכרזת throws באותה השיטה, שמשמעותה - זריקה של אותה חריגה הלאה.
 
=========סוגי חריגות מיוחדים=======
הכלל שראינו נוגע כמעט לכל החריגות. עם זאת, קיימים גם יוצאים מן הכלל: חריגות מהטיפוס {{קוד בשורה|Error}} ומהטיפוס {{קוד בשורה|RunTimeException}}, וכל היורשים מהם אינן דורשות הכרזה (למשל: שיטות שעשויות לזרוק {{קוד בשורה|NullPointerException}} אינן דורשות הכרזה). חריגות כאלה מכונות '''Unchecked exceptions''' (אל מול החריגות הדורשות הכרזה, המכונות '''Checked exceptions'''). ניתן לכתוב חריגות שמרחיבות את המחלקה {{קוד בשורה|RunTimeException}} ובכך להימנע מהצורך להכריז על חריגה מאותו טיפוס.