דף הבית  שיעורים  נושאים מתקדמים  טיפול ב-exceptions - המשך
 
טיפול ב-exceptions - המשך
 
במידת הצורך, יכולים להיות גם מספר מטפלים ב-exceptions:

int Sample(int x)
{
 try
 {
  if (x<10)
   throw "insufficient memory";
 }
 catch (int a)
 {
  printf("A %d was thrown!", a);
 }
 catch (char *s)
 {
  printf("%s", s);
 }
 return 0;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

במקרה זה, לכל מטפל צריך להיות פרמטר מיוחד משלו. המטפל בעל פרמטר מתאים ל-throw יהיה זה שיתפוס את השגיאה, כמו בדוגמא, ה-catch הראשון בעל פרמטר int, לא יהיה זה שיתפוס את השגיאה, אלא השגיאה תטופל בפקודת ה-catch השניה.
במידה ויש מספר מטפלים עם אותו הפרמטר, זה שיתפוס את השגיאה יהיה זה שמוקם כראשון מבינהם.
ניתן גם לכלול בקוד catch בעל שלוש נקודות במקום פרמטר, המציינות שהוא תופס כל מה שנזרק ואף אחת מפקודות ה-catch שלפניו לא תפסה:

catch (...)
{
 return 1;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט