Как да поправя опит за улавяне на PowerShell, който не работи?

За да коригирате това, потърсете неправилен синтаксис

  • Ако Try-Catch не работи на PowerShell, трябва да проверите за неправилен синтаксис и стойности за действие при грешка.
  • Това ръководство ще обясни различните начини за разрешаване на проблема.
Опитайте да хванете, че powershell не работи

хИНСТАЛИРАЙТЕ КАТО КЛИКНЕТЕ ВЪРХУ ИЗТЕГЛЯНЕ НА ФАЙЛА

За да коригирате различни компютърни проблеми, препоръчваме 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 е настроен на Продължи, тогава Try-Catch няма да работи според очакванията.
  • Синтактични грешки – Ако използваният синтаксис е неправилен, форматирането е неправилно или липсват ключови думи, Try-Catch няма да работи.
  • Cmdlet или поведение на функция – Някои функции и кратки команди идват със своето поведение при обработка на грешки, което може да не е съвместимо с Try-Catch.
  • Неправилна логика или използване на променливи – Ако има неподходяща употреба на променливи или неправилна логика, тогава Try-Catch няма да работи.

Какво мога да направя, ако Try-Catch не работи на PowerShell?

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

  1. Първо, трябва да проверите дали сте използвали правилния синтаксис за версията на PowerShell, която използвате.
  2. След това проверете дали сте поставили блоковете Try и Catch в правилната последователност.
  3. Основният синтаксис за Try-Catch е споменат по-долу. Заменете # кода за изпълнение тук с кода и # кода за обработка на грешки тук с кода за обработка на грешки:

Опитвам {
# код за изпълнение тук
}
Хвани {
# код за обработка на грешки тук
}

2. Проверете дали прихващате конкретна грешка 

Трябва да проверите дали прихващате конкретни грешки, които искате да обработите, а не всички грешки. Следвайте тези стъпки, за да направите същото:

  1. Натисни Windows ключ, вид 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 Използване: Как да го намалим

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. Въведете командата с Опитай-хвани-най-накрая. Ето един пример за по-добро разбиране на скрипта:

Опитвам {
# Вашият код тук

Хванете [Система. Изключение] {
# Код за обработка на изключения тук

Накрая {
 # Код за почистване тук
}

И така, това са начини, по които можете да разрешите проблема Try Catch не работи на PowerShell. Ако имате въпроси, свързани с Try-Catch, моля, споменете ги в секцията за коментари по-долу. Ще се радваме да помогнем!

Ако искате да знаете как да спрете затварянето на PowerShell след изпълнение на скрипт, можете да прочетете това.

Все още имате проблеми? Коригирайте ги с този инструмент:

СПОНСОРИРАНА

Ако съветите по-горе не са разрешили проблема ви, вашият компютър може да има по-сериозни проблеми с Windows. Препоръчваме изтегляне на този инструмент за поправка на компютър (оценен като страхотен на TrustPilot.com), за да се справите лесно с тях. След инсталирането просто щракнете върху Започни сканиране и след това натиснете Поправи всичко.

Какво е Try Catch в PowerShell и как да го използвате

Какво е Try Catch в PowerShell и как да го използватеPowershell

Ето как да обработвате грешки с обикновени командни командиАко често използвате PowerShell, очевидно сте срещали екран, пълен с червен текст, показващ грешка.Може да е трудно да се определи точната...

Прочетете още
Как да поправя опит за улавяне на PowerShell, който не работи?

Как да поправя опит за улавяне на PowerShell, който не работи?Powershell

За да коригирате това, потърсете неправилен синтаксисАко Try-Catch не работи на PowerShell, трябва да проверите за неправилен синтаксис и стойности за действие при грешка.Това ръководство ще обясни...

Прочетете още
Как да използвам PowerShell ErrorAction? (Ръководство с примери)

Как да използвам PowerShell ErrorAction? (Ръководство с примери)Powershell

Тази кратка команда обработва действието, ако възникне грешкаPowerShell ErrorAction е често срещан параметър, който влиза в действие, когато възникне грешка.Това ръководство ще обсъди PowerShell Er...

Прочетете още