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

class BadParam {
public:
 virtual void Print()
 {
  cout << "Invalid parameters!\n";
 }
};


class BadFirstParam:public BadParam {
public:
 virtual void Print()
 {
  cout << "First parameter invalid!\n";
 }
};


class BadSecondParam:public BadParam {
public:
 virtual void Print()
 {
  cout << "Second parameter invalid!\n";
 }
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כעת נבנה מנגנון לטיפול ב-exceptions המשתמש באובייקטים של המחלקות שהגדרנו:

int F(int a, int b)
{
 if (a<0)
  throw BadFirstParam();
 if (b<0)
  throw BadSecondParam ();
 return a+b;
}

void G(int a, int b)
{
 try
 {
  int sum = F(a-b,a);
 }
 catch (BadParam &bad)
 {
  bad.Print();
  return;
 }
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט