כדי לתקן את זה, חפש תחביר שגוי
- אם Try-Catch לא עובד ב-PowerShell, עליך לבדוק אם יש ערכי תחביר שגויים ופעולות שגיאה.
- מדריך זה יסביר את הדרכים השונות לפתור את הבעיה.
איקסהתקן על ידי לחיצה על הורד את הקובץ
- הורד את Restoro PC Repair Tool שמגיע עם טכנולוגיות פטנט (פטנט זמין כאן).
- נְקִישָׁה התחל סריקה כדי למצוא בעיות של Windows שעלולות לגרום לבעיות במחשב.
- נְקִישָׁה תקן הכל כדי לתקן בעיות המשפיעות על האבטחה והביצועים של המחשב שלך.
- Restoro הורד על ידי 0 הקוראים החודש.
הצהרת Try-Catch ב פגז כוח מטפל בשגיאות וחריגים בקוד שלך. אם ה-Try-Catch לא עובד כמו למעט ב-PowerShell, זה יכול להיות מתסכל.
במדריך זה, נסקור את כל הדרכים לתיקון הבעיה יחד עם הגורמים הסבירים לבעיה. בואו נתחיל!
מה גורם לבעיית ה-Try-Catch לא עובד ב-PowerShell?
יכולות להיות סיבות שונות לכך שההצהרה לא עובדת על PowerShell. להלן כמה מהנפוצים ביותר:
- ערכת ברירת מחדל של ErrorAction – אם ה ErrorAction מוגדר ל'המשך', אז Try-Catch לא יעבוד כצפוי.
- שגיאות תחביר – אם התחביר בו נעשה שימוש אינו תקין, העיצוב שגוי או חסרות בו מילות מפתח, Try-Catch לא יפעל.
- התנהגות Cmdlet או פונקציה – חלק מהפונקציות וה-cmdlets מגיעות עם התנהגות הטיפול בשגיאות, שאולי אינה תואמת ל-Try-Catch.
- לוגיקה שגויה או שימוש במשתנים – אם יש שימוש לא הולם ב משתנים או לוגיקה שגויה, אז Try-Catch לא יעבוד.
מה אני יכול לעשות אם ה-Try-Catch לא עובד על PowerShell?
1. בדוק תחביר
- ראשית, עליך לבדוק אם השתמשת בתחביר הנכון עבור גרסת PowerShell שבה אתה משתמש.
- לאחר מכן, ודא שהצבת את בלוקי ה-Try and Catch ברצף הנכון.
- התחביר הבסיסי של Try-Catch מוזכר להלן. החלף את קוד # שיפעל כאן בקוד ו-# קוד טיפול בשגיאה כאן בקוד טיפול בשגיאות:
נסה {
# קוד להרצה כאן
}
לתפוס {
# קוד טיפול בשגיאה כאן
}
2. בדוק אם אתה לוכד שגיאה ספציפית
אתה צריך לאמת אם אתה לוכד שגיאות ספציפיות שאתה רוצה לטפל בהן ולא את כל השגיאות. בצע את השלבים הבאים כדי לעשות את אותו הדבר:
- הקש על
חלונות
סוג מפתח פגז כוח, ולחץ הפעל כמנהל. - כדי ללכוד שגיאה, עליך להשתמש ב- $ משתנה בבלוק Catch כדי לגשת למידע על השגיאה שנזרקה. בואו נבדוק את הדוגמה של אותו הדבר כדי להבין טוב יותר:
נסה {
Get-ChildItem -Path C:\DoesNotExist
}
לתפוס {
if ($_.Exception. GetType().Name -eq "DirectoryNotFoundException") {
כתיבה-פלט "הספרייה לא נמצאה."
}
אחר {
לזרוק $_.חריג|
}
}
3. הגדר ערך ErrorAction
ערך ברירת המחדל עבור ErrorAction הוא Continue; עם זאת, כדי ש-Try-Catch יעבוד, עליך להגדיר את ערך ErrorAction ל-Stop. לשם כך, בצע את השלבים הבאים:
- לִפְתוֹחַ פגז כוח כמנהל.
- עליך להשתמש ב-cmdlet Set-StrictMode או בפרמטר ErrorAction ב-cmdlet בודדים. כדי להבין את זה טוב יותר, הבה נסתכל על דוגמה:
נסה {
Get-ChildItem -Path C:\DoesNotExist -ErrorAction Stop
}
לתפוס {
כתיבה-פלט $_.Exception. הוֹדָעָה
}
- הנה איך לשחזר את מפתח BitLocker שלך מ- OneDrive
- כיצד להשתמש ב-Phone Link עבור iPhone ב-Windows 11
- DaVinci Resolve שימוש גבוה במעבד: כיצד לצמצם אותו
4. השתמש בסוג החריג הנכון
חשוב להשתמש בחריגים נכונים בעת שימוש ב-Try-Catch, מכיוון שהוא יכול להתמודד רק עם חריגים של המערכת. סוג חריג. אם השתמשת ללא מערכת. שגיאות חריגות, אז Try-Catch לא יעבוד.
לגבי לא מערכת. יוצא מן הכלל, עליך להשתמש במנגנון הטיפול בשגיאות של NET" או לתפוס את השגיאה.
5. הימנע מהפסקת התסריט
אם הסקריפט שלך נסגר לפני שהגיע לחסימה של Catch, Try-Cach לא תקבל הזדמנות לטפל בשגיאה. כדי למנוע סיום סקריפט, בצע את השלבים הבאים:
- לְהַשִׁיק פגז כוח עם זכויות מנהל.
- אתה צריך להשתמש ב לְהַמשִׁיך הצהרה לאחר ה לתפוס לַחסוֹם. בואו נבין את זה על ידי דוגמה:
נסה {
Get-ChildItem -Path C:\DoesNotExist
}
לתפוס {
כתיבה-פלט $_.Exception. הוֹדָעָה
לְהַמשִׁיך
}
6. השתמש ב-Try-Catch-Finally
אם הצהרת Try-Catch עדיין לא עובדת, אתה יכול להשתמש במבנה Try-Catch-Finally במקום זאת. זה מבטיח שהקוד שלך פועל עד תום, גם אם הועלה חריג.
- לִפְתוֹחַ פגז כוח כמנהל.
- הקלד את הפקודה עם נסה-תפוס-סוף סוף. הנה דוגמה כדי להבין את התסריט טוב יותר:
נסה {
# הקוד שלך כאן
}
תפוס [מערכת. יוצא מן הכלל] {
# קוד טיפול חריג כאן
}
סוף כל סוף {
# קוד ניקוי כאן
}
אז אלו הדרכים שבהן אתה יכול לפתור את הבעיה של Try Catch לא עובד ב- PowerShell. אם יש לך שאלות כלשהן הקשורות ל-Try-Catch, אנא ציינו אותן בסעיף ההערות למטה. נשמח לעזור!
אם אתה רוצה לדעת איך למנוע את סגירת PowerShell לאחר הפעלת סקריפט, אתה יכול לקרוא את זה.
עדיין יש בעיות? תקן אותם עם הכלי הזה:
ממומן
אם העצות לעיל לא פתרו את הבעיה שלך, המחשב שלך עלול להיתקל בבעיות Windows עמוקות יותר. אנחנו ממליצים הורדת כלי תיקון מחשב זה (מדורג נהדר ב-TrustPilot.com) כדי לטפל בהם בקלות. לאחר ההתקנה, פשוט לחץ על התחל סריקה לחצן ולאחר מכן לחץ על תקן הכל.