Як виправити Try Catch PowerShell не працює?

Щоб виправити це, знайдіть неправильний синтаксис

  • Якщо Try-Catch не працює в PowerShell, ви повинні перевірити на наявність неправильного синтаксису та значень дій щодо помилок.
  • Цей посібник пояснює різні способи вирішення проблеми.
Спробуйте виявити, що PowerShell не працює

XВСТАНОВИТИ, НАТИСНУВШИ ЗАВАНТАЖИТИ ФАЙЛ

Щоб вирішити різні проблеми з ПК, ми рекомендуємо Restoro PC Repair Tool:Це програмне забезпечення виправить поширені комп’ютерні помилки, захистить вас від втрати файлів, зловмисного програмного забезпечення, збою апаратного забезпечення та оптимізує ваш ПК для максимальної продуктивності. Вирішіть проблеми з ПК і видаліть віруси в 3 простих кроки:
  1. Завантажте Restoro PC Repair Tool який поставляється із запатентованими технологіями (патент доступний тут).
  2. Натисніть Розпочати сканування щоб знайти проблеми з Windows, які можуть спричиняти проблеми з ПК.
  3. Натисніть Відремонтувати все щоб вирішити проблеми, що впливають на безпеку та продуктивність вашого комп’ютера.
  • Restoro завантажив 0 читачів цього місяця.

Оператор Try-Catch в

PowerShell обробляє помилки та винятки у вашому коді. Якщо Try-Catch не працює як винятки в PowerShell, це може засмучувати.

У цьому посібнику ми розглянемо всі способи вирішення проблеми разом із ймовірними причинами проблеми. Давайте розпочнемо!

Чому проблема Try-Catch не працює в PowerShell?

Можуть бути різні причини, чому оператор не працює в PowerShell. Ось деякі з найпоширеніших:

  • Встановлено ErrorAction за замовчуванням – Якщо Для ErrorAction встановлено значення Continue, тоді Try-Catch не працюватиме належним чином.
  • Синтаксичні помилки – Якщо використовується неправильний синтаксис, неправильне форматування або відсутні ключові слова, Try-Catch не працюватиме.
  • Поведінка командлета або функції – Деякі функції та командлети мають свою поведінку обробки помилок, яка може бути несумісною з Try-Catch.
  • Неправильна логіка або використання змінних – Якщо має місце нецільове використання змінні або неправильна логіка, тоді Try-Catch не працюватиме.

Що робити, якщо Try-Catch не працює в PowerShell?

1. Перевірте синтаксис

  1. По-перше, вам потрібно перевірити, чи використано правильний синтаксис для версії PowerShell, яку ви використовуєте.
  2. Далі переконайтеся, що ви розмістили блоки Try і Catch у правильній послідовності.
  3. Основний синтаксис Try-Catch наведено нижче. Замініть # код для запуску тут на код і # код обробки помилок тут на код обробки помилок:

Спробуйте {
# код для запуску тут
}
Виловити {
# код обробки помилок тут
}

2. Перевірте, чи ви перехоплюєте конкретну помилку 

Вам потрібно перевірити, чи ви перехоплюєте конкретні помилки, які хочете обробити, а не всі помилки. Виконайте такі дії, щоб зробити те саме:

  1. Натисніть вікна ключ, вид PowerShell, і натисніть Запустити від імені адміністратора.Сценарій
  2. Щоб перехопити помилку, потрібно використати $ змінна в блоці Catch, щоб отримати доступ до інформації про помилку, яка виникла. Давайте перевіримо приклад того самого, щоб краще зрозуміти: Спробуйте {
    Get-ChildItem -Path C:\DoesNotExist
    }
    Виловити {
    якщо ($_.Виняток. GetType().Name -eq "DirectoryNotFoundException") {
    Запис-вивід «Каталог не знайдено».
    }
    ще {
    викинути $_.Exception|
    }
    }

3. Установіть значення ErrorAction 

Значенням за замовчуванням для ErrorAction є Continue; однак, щоб Try-Catch працював, вам потрібно встановити значення ErrorAction на Stop. Для цього виконайте такі дії:

  1. ВІДЧИНЕНО PowerShell як адміністратор.
  2. Потрібно використовувати командлет Set-StrictMode або параметр ErrorAction для окремих командлетів. Щоб краще це зрозуміти, розглянемо приклад:
Спробуйте Catch за допомогою ErrorAction Stop PowerShell

Спробуйте {
Get-ChildItem -Path C:\DoesNotExist -ErrorAction Stop
}
Виловити {
Запис-вивід $_.Виняток. повідомлення
}

Докладніше про цю тему
  • Ось як відновити ключ BitLocker із OneDrive
  • Як використовувати Phone Link для iPhone у Windows 11
  • DaVinci Resolve High CPU Usage: як його зменшити

4. Використовуйте правильний тип винятку

Під час використання Try-Catch важливо використовувати правильні винятки, оскільки він може обробляти лише винятки системи. Тип винятку. Якщо ви використовували не-System. Помилки винятків, тоді Try-Catch не працюватиме.

Щодо несистемних. Виняток, вам потрібно використовувати механізм обробки помилок фреймворку NET або виявити помилку.

5. Уникайте завершення сценарію 

Якщо ваш сценарій завершується до досягнення блоку Catch, Try-Cach не матиме можливості обробити помилку. Щоб уникнути завершення сценарію, виконайте такі дії:

  1. Запуск PowerShell з правами адміністратора.
  2. Ви повинні використовувати Продовжити заява після Виловити блокувати. Зрозуміємо це на прикладі:
спробуйте зловити нарешті

Спробуйте {
Get-ChildItem -Path C:\DoesNotExist
}
Виловити {
Запис-вивід $_.Виняток. повідомлення
Продовжити
}

6. Використовуйте Try-Catch-Finally

 Якщо оператор Try-Catch все ще не працює, замість нього можна використати конструкцію Try-Catch-Finally. Це гарантує, що ваш код виконується до кінця, навіть якщо виникає виняткова ситуація.

  1. ВІДЧИНЕНО PowerShell як адміністратор.
  2. Введіть команду за допомогою Спробуй-Спіймай-Нарешті. Ось приклад, щоб краще зрозуміти сценарій:

Спробуйте {
# Ваш код тут

Catch [Система. Виняток] {
# Код обробки винятків тут

Нарешті {
 # Код очищення тут
}

Отже, це способи, за допомогою яких можна вирішити проблему Try Catch не працює в PowerShell. Якщо у вас є запитання щодо Try-Catch, задайте їх у розділі коментарів нижче. Будемо раді допомогти!

Якщо ви хочете знати, як зупинити PowerShell від закриття після виконання сценарію, ви можете прочитати це.

Виникли проблеми? Виправте їх за допомогою цього інструменту:

СПОНСОРОВАНО

Якщо наведені вище поради не допомогли вирішити вашу проблему, на комп’ютері можуть виникнути глибші проблеми з Windows. Ми рекомендуємо завантаження цього інструменту відновлення ПК (оцінка «Чудово» на TrustPilot.com), щоб легко їх вирішити. Після встановлення просто натисніть Розпочати сканування кнопку, а потім натисніть на Відремонтувати все.

Get-Appxpackage у PowerShell Доступ заборонено або не працює [Виправлення]

Get-Appxpackage у PowerShell Доступ заборонено або не працює [Виправлення]PowershellWindows 10Windows 11

Щоразу, коли будь-яка програма встановлювалася в системі, вона в основному завантажувалася з Microsoft Store або будь-якої третьої сторони джерела потрібно оновити, перереєструвати або видалити, ко...

Читати далі
Запустіть оновлення Windows із командного рядка [2 різні способи]

Запустіть оновлення Windows із командного рядка [2 різні способи]оновлення WindowsPowershellКомандний рядок

Виконайте ці прості кроки, щоб установити оновлення Windows за допомогою командВи можете оновити Windows із командних рядків за допомогою командного рядка та Windows PowerShell.Створіть точку відно...

Читати далі
Що таке Try Catch у PowerShell і як ним користуватися

Що таке Try Catch у PowerShell і як ним користуватисяPowershell

Ось як обробляти помилки за допомогою простих командлетів командного рядкаЯкщо ви часто користуєтеся PowerShell, ви, очевидно, стикалися з екраном, повним червоного тексту, що вказує на помилку.Мож...

Читати далі