C++/חריגות: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
שורה 34:
=== חריגות ===
כעת נציג את מנגנון החריגות ב C++. חריגה היא משהו ש"נזרק" ממקום שבו אריעה שגיאה בתוכנית. ברגע שחריגה נזרקת, הקוד הרגיל של התוכנית לא ימשיך, ויבוצע במקומו קוד מיוחד לטיפול בשגיאה, או שהתוכנית תסתיים.
 
מה בעצם ניתן לזרוק ? אובייקטים ופרימיטיבים של C++. כדי לזרוק חריגה משתמשים במילת המפתח ''throw''. נדגים זאת כעת.
==== זריקת חריגה ====
קודם כל, נגדיר מחלקה מיוחדת, שנוכל לזרוק אובייקטים שלה. אין חובה לעשות זאת, וניתן לזרוק כל מחלקה, אך ממולץ ליצור היררכית מחלקות מיוחדת עבור חריגות, כאשר כל מחלקה נועדה לסוג אחר של שגיאה.
 
<div style="text-align:left; direction:ltr;"><pre>
class InvalidArgumentException{};
</pre></div>
 
כעת, נממש מחדש את sqrt:
 
 
double sqrt(double num){
if(num>0.0) {
throw InvalidArgumentException{};
}
// Do the rest of the root
)
 
</pre></div>