DCSIMG
trap statement - שחר.נט

שחר.נט

בלוגים שאני קורא

ספרים מומלצים

trap statement


בפוסט הקודם שכתבתי על תפיסת שגיאות ב Windows PowerShell, דיברתי על כך שניתן באמצעות האובייקט ERROR לדעת איזה שגיאות קרו, לקבל את אוסף כל שהגיאות ולפעול בהתאם.

בתגובה, היו ששאלו אותי איך ניתן לעבוד ולנהל שגיאות בצתורה דומה לדוט.נט שם אנחנו עובדים אם try...catch statement.

התשובה, היא trap statement:

image
למעשה, trap הוא החלופה של catch. אין לנו ממש משפט try מובהק ב powershell, מאחר שמדובר בסקריפטינג.
לכן, נהוג לשים את ה trap תחילת הפונקציה. ב ExceptionType, מציינים את סוג ה Exception כשאפשר, כמובן, מספר משפטי trap, כל אחד לסוג אחר.
אם נשתמש בתוך ה trap ב ._$ זה יפנה אותנו, למעשה, לאובייקט ErrorRecord שכולל את פירוט השגיאה.
בתוך ה trap, ניתן להשתמש בביטוי continue שאומר שההרצה תחזור לשורת הקוד שלאחר השורה שזרקה את ה exception. אם נשתמש ב break, זה יפסיק את הרצת הסקריפט. ניתן גם להשתמש ב return שמחזיר ערך מחוץ ל scope של ה trap.
השיטה הזאת, בהרבה מובנים נוחה יותר מעובדה ישירה כל שורה מול אובייקט ה error, כדי לבדוק אם אירעה שגיאה. פה, אנחנו נוכל לוודא שנדע על זה בנוחות, כולל מיון לסוג ה Exception.
 
בהצלחה.
 

תוכן התגובה

שחר גבירץ כתב/ה:

נכון, גם בפייתון יש מבנה כזה.

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

שחר.

# October 14, 2007 6:19 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 4 and 1 and type the answer here:


Enter the numbers above: