תוכן עניינים:
הגדרה - מה המשמעות של Catch Block?
חסימת תפיסה, ב- C #, היא בלוק קוד אופציונלי שמבוצע בעת העלאת חריג.
בלוק תפוס הוא חלק ספציפי ממבנה הטיפול יוצא הדופן, ומיושם באמצעות מילת המפתח "לתפוס" בשילוב מילות מפתח "נסה" ו- "סוף סוף" ומהווה את האמצעים ליישום טיפול חריג מובנה. חסימת ניסיון כוללת את הקוד השמור שיכול לגרום לחריג. הוא מצורף הצהרות העוסקות בנסיבות חריגות ופועל להתאושש מתנאים לא צפויים כאלה.
בלוק תפוס מהווה את האמצעים לטיפול בחריגים. אם אלה אינם מטופלים, הדבר עלול להוביל לסיום התוכנית כולה על ידי זמן הריצה של NET. ניתן להשתמש בלוק לתפוס לטיפול בכל חריג או ספציפי.
Techopedia מסביר את Catch Block
מודל הטיפול בחריג של Common Language Runtime (CLR) מאפשר ליותר ממחסום תפיסה אחד, שכל אחד מהם נועד לטפל בחריג ספציפי. בכל פעם שמתרחשת חריגה, ה- CLR מחפש את גוש התפיסה המטפל בחריג. אם השיטה המבוצעת כרגע אינה מכילה חסימה כזו, CLR מחפש אותה בשיטה שקראה לשיטה הנוכחית במעלה השיחה. אם לא נמצא סעיף תואם לאותו יוצא מן הכלל בקוד כולו, ביצוע החוט מופסק והודעת חריגה בלתי מטופלת מוצגת למשתמש.
להלן מספר טיפים הקשורים לשימוש בגוש מלכודות:
- יש לציין את סוג החריג לבלוק התפיסה רק לאחר שנקבע הסיבה מאחורי התרחשותם של חריגים בלתי אפשריים ספציפיים (כמו כשל במערכת אסון, שימוש לרעה בממשק API וכו ') ושחזור הושלם מבלי להשאיר את היישום במצב לא עקבי או מצב לא חוקי.
- יש למקם את חסימת הלכידה כך שיש לתפוס את החריגים הספציפיים יותר לפני הפחות ספציפיים.
- חסימת תפוס ללא פרמטרים מכונה "חריגי אכילה" מכיוון שהדבר יכול לדכא בעיות קשות שקשה לאבחן.
- ניתן לרכז את בלוק התפיסה כך שהוא יכול להתמודד עם החריג ממקום מרכזי.
- ניתן להשתמש באמירת ה"זריקה "בתוך בלוק התפיסה שעבורו ניתן לעבור שוב אותו אובייקט חריג שהועבר בזריקה תוך כדי טיול מחדש.
- לא ניתן להשתמש במשתנים המוצהרים בתוך חסימת ניסיון מחוץ לו.
- הקוד לא יחזור לחסימת הניסיון לאחר ביצוע גוש התפס.
- בדיקת קוד מטפל החריגות בחסימת התפיסה חיונית כדי להימנע משבירת היישום.
- אין להשתמש בחסימה של תפיסה לקוד ניקוי.
- לא ניתן להשתמש בלוק לתפוס ללא פרמטרים לטיפול בחריגים שאינם תואמי מערכת בשפה שאינה נפוצה (אלה שאינם נגזרים מ- System.Exception).