טיפול בשגיאות ברמת האפליקציה

לפני יותר שנים משאני רוצה להודות, כאשר עשיתי את צעדיי הראשונים כמתכנת אמר לי מי שהיה אז ראש הצוות שבו עבדתי כי אין שגיאת תכנות גדולה יותר מאשר הזנחת הטיפול בשגיאות. השגיאות הרבות שעשיתי מאז ואלה שעוד נכונו לי למדו אותי עד כמה נכונה קביעה זו.

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

"שגיאת התכנות הקשה ביותר שתוכלו לעשות היא לא לטפל כראוי בשגיאות תכנות!"

הגדרת טיפול בשגיאות ברמת אפליקציה נעשית באמצעות הגדרות בקובץ ה - Web.config הנמצא בספריית השורש של האפליקציה שלנו. כאשר מדובר באתר המציג בעיקר מידע (כמו אתר זה למשל ) ולא באפליקציה של ממש, אזי ניתן "להתעלם" משגיאות ולא להציגן למשתמש (לא ידידותי אך נפוץ בהרבה מאוד אתרים) אלא להביא את המשתמש לאחד הדפים האחרים באתר. בדרך כלל הבחירה תיפול על דף הבית של האתר או על דף שגיאות כללי. נעשה זאת בדרך הבאה:

דוגמה להגדרת דף ברירת מחדל כדף שיוצג למשתמש בכל שגיאה:

<configuration>
<system.web>
<customErrors mode="RemoteOnly"
defaultRedirect="homepage.aspx"/>
</system.web>
<configuration>

בדוגמה שלמעלה הגדרנו בקובץ ה - Web.config של האפליקציה את הדף homepage.aspx כדף ברירת המחדל לכל שגיאת מערכת שאינה מטופלת בדרך אחרת. הגדרנו גם שאנו רוצים שדף ברירת המחדל לשגיאות שלנו יוצג רק כאשר מדובר בריצה מרוחקת של האפליקציה ולא בזמן הקומפילציה שלה, משום שאז בדרך כלל נרצה לראות מה השגיאה ומה טיבה, לשם כך הגדרנו את השורה הבאה: mode="remoteonly".

לעתים נרצה לטפל בשגיאות ברמה יותר פרטנית, כלומר להגדיר את צורת הטיפול שלנו עבור שגיאות מסוגים שונים. נעשה זאת שוב בעזרת הגדרות בקובץ ה - web.config של האפליקציה שלנו. נעשה זאת כך:

דוגמה להגדרת דפים מותאמים אישית לכל סוג של שגיאה בנפרד:

<configuration>
<system.web>
<customErrors mode="RemoteOnly"
defaultRedirect="homepage.aspx">
<error statusCode="500" redirect="support.htm"/>
<error statusCode="404" redirect="notfound.aspx"/>
<error statusCode="403" redirect="noaccess.aspx"/>
</system.web>
<configuration>

בדוגמה שלמעלה הגדרנו דפי שגיאה מיוחדים עבור השגיאות שמספרן: 500, 404, 403 וכן דף ברירת מחדל עבור כל שגיאה אחרת.

מדריכים וכלים רלוונטיים נוספים בנושא זה

הוספת MIME TYPES לשרתי חלונות

המדריך השלם לסטטוסים החוזרים ב - HTTP


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש