שגיאה היא כל מצב אשר התוכנה לא יודעת כיצד לטפל בו, או שהיא מטפלת בו באופן שלא היה רצוי לכותבי התוכנה.
דוגמאות לשגיאות הן קובץ לא קיים שמנסים לגשת אליו, ניסיון להציב משתנה מסוג לא מתאים או כל פעולה אחרת שהמערכת חושבת שהיא לא חוקית. את הבעיות הללו ניתן לרוב לאתר מראש, בעזרת בדיקה וטיפול מונע.
הנחת מלכודת: On Error
המשפט On Error הוא משפט תוכנית המשמש לגילוי שגיאות זמן קיצה. כדי להניח מלכודת לשגיאות עלייך להציב את המשפט On Error לפני שורת הקוד העלולה להיות בעיתית. משפט זה מורה לויז'ואל בייסיק לאן להסתעף כאשר היא נתקלת בשגיאה.
התחביר של On Error הוא כדלקמן:
[תווית] On Error GoTo
התווית (label) הוא שמו של הכלי לטיפול. לכל אמצעי לטיפול בשגיאות יש תווית משלו, המלווה בסימן נקודתיים ':' המשמשים לזיהוי לדוגמה, :.ErrorHandler
רוב האמצעים לטיפול בשגיאות כוללים שני חלקים. החלק הראשון משתמש לרוב במאפיין Err.Number(מספר השגיאה) כחלק ממבנה החלטה ( If...Thenאו Select Case) ולאחר מכן מציג הודעה או מציב ערך במאפיין בהתאם לסוג השגיאה שאותרה.
החלק השני הוא משפט ה Resume(חדש פעולה המחזיר שליטה על המערכת אל התוכנית כדי שתוכל להמשיך להתבצע.
Resume
ניתן להשתמש במשפט Resume לבד או ב Resume Next או לצרף למילה זו תווית אליה אתה רוצה להסתעף, בהתאם לחלק התוכנית בו אתה רוצה להמשיך את הביצוע.
מילת מפתח זו, מחזירה את השליטה למשפט שגרם לשגיאה (בתקווה שהשגיאה תוקנה ולא תתרחש שנית). לדוגמה, אתה יכול לחפש בכונן דיסקים אחר דיסק מסוים. אם דלת הכונן פתוחה, אז ישנה שגיאת זמן ריצה ואז תפנה התוכנית לתווית ה Error שקבענו. שם אתה יכול לבקש מהמשתמש לסגור את דלת הכונן וללחוץ על אישור כשהוא מוכן. אם המשתמש לחץ אישור, אז המחשב יחזור לשורה שגרמה לשגיאה אך הפעם, אם המשתמש סגר את דלת הכונן אז התוכנית תמשיך לפעול כרגיל.
בנוסף אתה יכול להוסיף תווית אחרי המילה .Resume דבר זה מאפשר גמישות להגיע לכל מקום בשגרת האירוע.
באפשרותך להשתמש במאפיין Err.Discription המכיל את הודעת השגיאה המוחזרת לויז'ואל בייסיק כשמתרחשת שגיאת זמן ריצה.