כיצד לתקן נסה את Catch PowerShell לא עובד?

כדי לתקן את זה, חפש תחביר שגוי

  • אם Try-Catch לא עובד ב-PowerShell, עליך לבדוק אם יש ערכי תחביר שגויים ופעולות שגיאה.
  • מדריך זה יסביר את הדרכים השונות לפתור את הבעיה.
נסה לתפוס את powershell לא עובד

איקסהתקן על ידי לחיצה על הורד את הקובץ

כדי לתקן בעיות מחשב שונות, אנו ממליצים על Restoro PC Repair Tool:תוכנה זו תתקן שגיאות מחשב נפוצות, תגן עליך מאובדן קבצים, תוכנות זדוניות, כשל חומרה ותייעל את המחשב שלך לביצועים מקסימליים. תקן בעיות במחשב והסר וירוסים כעת ב-3 שלבים פשוטים:
  1. הורד את Restoro PC Repair Tool שמגיע עם טכנולוגיות פטנט (פטנט זמין כאן).
  2. נְקִישָׁה התחל סריקה כדי למצוא בעיות של Windows שעלולות לגרום לבעיות במחשב.
  3. נְקִישָׁה תקן הכל כדי לתקן בעיות המשפיעות על האבטחה והביצועים של המחשב שלך.
  • 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. בדוק תחביר

  1. ראשית, עליך לבדוק אם השתמשת בתחביר הנכון עבור גרסת PowerShell שבה אתה משתמש.
  2. לאחר מכן, ודא שהצבת את בלוקי ה-Try and Catch ברצף הנכון.
  3. התחביר הבסיסי של Try-Catch מוזכר להלן. החלף את קוד # שיפעל כאן בקוד ו-# קוד טיפול בשגיאה כאן בקוד טיפול בשגיאות:

נסה {
# קוד להרצה כאן
}
לתפוס {
# קוד טיפול בשגיאה כאן
}

2. בדוק אם אתה לוכד שגיאה ספציפית 

אתה צריך לאמת אם אתה לוכד שגיאות ספציפיות שאתה רוצה לטפל בהן ולא את כל השגיאות. בצע את השלבים הבאים כדי לעשות את אותו הדבר:

  1. הקש על חלונות סוג מפתח פגז כוח, ולחץ הפעל כמנהל.תַסרִיט
  2. כדי ללכוד שגיאה, עליך להשתמש ב- $ משתנה בבלוק Catch כדי לגשת למידע על השגיאה שנזרקה. בואו נבדוק את הדוגמה של אותו הדבר כדי להבין טוב יותר: נסה {
    Get-ChildItem -Path C:\DoesNotExist
    }
    לתפוס {
    if ($_.Exception. GetType().Name -eq "DirectoryNotFoundException") {
    כתיבה-פלט "הספרייה לא נמצאה."
    }
    אחר {
    לזרוק $_.חריג|
    }
    }

3. הגדר ערך ErrorAction 

ערך ברירת המחדל עבור ErrorAction הוא Continue; עם זאת, כדי ש-Try-Catch יעבוד, עליך להגדיר את ערך ErrorAction ל-Stop. לשם כך, בצע את השלבים הבאים:

  1. לִפְתוֹחַ פגז כוח כמנהל.
  2. עליך להשתמש ב-cmdlet Set-StrictMode או בפרמטר ErrorAction ב-cmdlet בודדים. כדי להבין את זה טוב יותר, הבה נסתכל על דוגמה:
נסה לתפוס עם ErrorAction Stop PowerShell

נסה {
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 לא תקבל הזדמנות לטפל בשגיאה. כדי למנוע סיום סקריפט, בצע את השלבים הבאים:

  1. לְהַשִׁיק פגז כוח עם זכויות מנהל.
  2. אתה צריך להשתמש ב לְהַמשִׁיך הצהרה לאחר ה לתפוס לַחסוֹם. בואו נבין את זה על ידי דוגמה:
תנסה לתפוס לבסוף

נסה {
Get-ChildItem -Path C:\DoesNotExist
}
לתפוס {
כתיבה-פלט $_.Exception. הוֹדָעָה
לְהַמשִׁיך
}

6. השתמש ב-Try-Catch-Finally

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

  1. לִפְתוֹחַ פגז כוח כמנהל.
  2. הקלד את הפקודה עם נסה-תפוס-סוף סוף. הנה דוגמה כדי להבין את התסריט טוב יותר:

נסה {
# הקוד שלך כאן

תפוס [מערכת. יוצא מן הכלל] {
# קוד טיפול חריג כאן

סוף כל סוף {
 # קוד ניקוי כאן
}

אז אלו הדרכים שבהן אתה יכול לפתור את הבעיה של Try Catch לא עובד ב- PowerShell. אם יש לך שאלות כלשהן הקשורות ל-Try-Catch, אנא ציינו אותן בסעיף ההערות למטה. נשמח לעזור!

אם אתה רוצה לדעת איך למנוע את סגירת PowerShell לאחר הפעלת סקריפט, אתה יכול לקרוא את זה.

עדיין יש בעיות? תקן אותם עם הכלי הזה:

ממומן

אם העצות לעיל לא פתרו את הבעיה שלך, המחשב שלך עלול להיתקל בבעיות Windows עמוקות יותר. אנחנו ממליצים הורדת כלי תיקון מחשב זה (מדורג נהדר ב-TrustPilot.com) כדי לטפל בהם בקלות. לאחר ההתקנה, פשוט לחץ על התחל סריקה לחצן ולאחר מכן לחץ על תקן הכל.

ביצוע סקריפטים מושבת במערכת זו [FIX]

ביצוע סקריפטים מושבת במערכת זו [FIX]פגז כוחשְׁגִיאָה

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

קרא עוד
המפתח PowerShell זמין כעת ב- Visual Studio 2019

המפתח PowerShell זמין כעת ב- Visual Studio 2019פגז כוחסטודיו חזותי

מיקרוסופט הוכרז לאחרונה כלי חדש עבור Visual Studio 2019.המפתח PowerShell מגיע כתוצאה ממשוב משתמשיםבהתבסס על משוב משתמשים, החברה הוסיפה את PowerShell למפתחים עבור אלה שרוצים חלופה לשורת הפקודה של Vi...

קרא עוד
השלמה אוטומטית של PowerShell אינה פועלת? נסה שיטות אלה

השלמה אוטומטית של PowerShell אינה פועלת? נסה שיטות אלהפגז כוח

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

קרא עוד