לרוע המזל, בניית יישומים כוללת קידוד. לא משנה עד כמה אתה כותב / מבצע באגים בזהירות של התוכנית שלך, אי אפשר לדמיין כל מצב שיכול להשתבש. המשתמש חסר הניסיון עשוי, למשל, לנסות לפתוח קובץ שאינו קיים או להזין ערך רע לשדה נתונים.
משתמשים טועים ועלינו להיות מוכנים לטפל / למנוע טעויות אלה בכל מקום ובכל זמן אפשרי.
טעויות, חריגים?
חריג הוא בדרך כלל מצב שגיאה או אירוע אחר הקוטע את הזרימה הרגילה של ביצוע ביישום. בכל פעם ששגיאה נובעת מעיבוד שורת קוד, דלפי יוצרת (מעלה) צאצא של אובייקט מ- TObject הנקרא אובייקט החריג.
בלוקים שמורים
יישום מגיב לחריגה על ידי ביצוע קוד סיום כלשהו, טיפול בחריג או על שניהם. הדרך לאפשר לכידת שגיאות / חריגות בתוך קוד נתון, החריג חייב להתרחש בתוך גוש הצהרות שמור. הקוד הכללי נראה כמו:
נסה. {גוש קוד שמור} מלבד. על כן מתחילים. {סיום חריגות ידיות על SomeException}; סוף;
א נסה / למעט הצהרה מבצעת את ההצהרות בגוש הקוד השמור. אם ההצהרות מופעלות מבלי שהועלו חריגות כלשהן, מתעלמים מחסימת החריגה והשליטה מועברת להצהרה בעקבות מילת המפתח הסופית.
דוגמא:
... אפס: = 0; נסה. דמה: = 10 / אפס; מלבד. ב- EZeroDivide לעשות. MessageDlg ('לא ניתן לחלק באפס!', MtError, [mbOK], 0); סוף;...
הגנה על משאבים
כאשר קטע קוד רוכש משאב, לעיתים קרובות יש להבטיח שהמשאב ישוחרר שוב (או שתוכל לקבל דליפת זיכרון), ללא קשר אם הקוד מסתיים כרגיל או מופרע על ידי חריג. במקרה זה, התחביר משתמש סוף סוף מילת מפתח ונראית כמו:
{קוד כלשהו להקצאת משאבים} נסה. {גוש קוד שמור} סוף סוף. {סיום בלוק - קוד למשאבים בחינם} סוף;
דוגמא:
... AboutBox: = T AboutBox. צור (אפסי); נסה. AboutBox. ShowModal; סוף סוף. AboutBox. שחרור; סוף;...
יישום. OnException
אם היישום שלך לא מטפל בשגיאה שגרמה לחריג, דלפי תשתמש במטפל החריגות המשמש כברירת מחדל - היא פשוט תציג תיבת הודעה. אתה יכול לשקול לכתוב קוד באירוע OnException עבור אובייקט TApplication, על מנת ללכוד טעויות ברמת היישום.
שוברים חריגים
בעת בניית תוכנית עם טיפול בחריגים, יתכן שלא תרצה שדלפי תפר על חריגים. זוהי תכונה נהדרת אם אתה רוצה שדלפי תראה היכן התרחש חריג; עם זאת, זה יכול להיות מעצבן כשאתה בודק את הטיפול בחריג שלך.
מעט מילים אחרונות
הרעיון של מאמר זה הוא לתת לך מבט חטוף במה הם יוצאים מהכלל. לדיון נוסף בנושא טיפול בחריגים, שקול על טיפול בחריגים בטיפול בחריג דלפי, באמצעות כלי כמו דלפי בהתרסקות / טיפול בחריג עם דיווח על באגים וכמה מהמאמרים הקשורים הבאים: