За да коригирате това, потърсете неправилен синтаксис
- Ако Try-Catch не работи на PowerShell, трябва да проверите за неправилен синтаксис и стойности за действие при грешка.
- Това ръководство ще обясни различните начини за разрешаване на проблема.
хИНСТАЛИРАЙТЕ КАТО КЛИКНЕТЕ ВЪРХУ ИЗТЕГЛЯНЕ НА ФАЙЛА
- Изтеглете Restoro PC Repair Tool който идва с патентовани технологии (наличен патент тук).
- Кликнете Започни сканиране за да намерите проблеми с Windows, които може да причиняват проблеми с компютъра.
- Кликнете Поправи всичко за отстраняване на проблеми, засягащи сигурността и производителността на вашия компютър.
- 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. Проверете синтаксиса
- Първо, трябва да проверите дали сте използвали правилния синтаксис за версията на PowerShell, която използвате.
- След това проверете дали сте поставили блоковете Try и Catch в правилната последователност.
- Основният синтаксис за Try-Catch е споменат по-долу. Заменете # кода за изпълнение тук с кода и # кода за обработка на грешки тук с кода за обработка на грешки:
Опитвам {
# код за изпълнение тук
}
Хвани {
# код за обработка на грешки тук
}
2. Проверете дали прихващате конкретна грешка
Трябва да проверите дали прихващате конкретни грешки, които искате да обработите, а не всички грешки. Следвайте тези стъпки, за да направите същото:
- Натисни
Windows
ключ, вид PowerShell, и щракнете Изпълни като администратор. - За да прихванете грешка, трябва да използвате $ променлива в блока Catch за достъп до информация за грешката, която е била хвърлена. Нека проверим примера за същото, за да разберем по-добре:
Опитвам {
Get-ChildItem -Path C:\DoesNotExist
}
Хвани {
ако ($_.Изключение. GetType().Name -eq "DirectoryNotFoundException") {
Запис-изход "Директорията не е намерена."
}
иначе {
хвърля $_.Exception|
}
}
3. Задайте стойност на ErrorAction
Стойността по подразбиране за ErrorAction е Continue; за да работи Try-Catch обаче, трябва да зададете стойността ErrorAction на Stop. За да направите това, изпълнете следните стъпки:
- Отворете PowerShell като администратор.
- Трябва да използвате кратката команда Set-StrictMode или параметъра ErrorAction за отделни кратки команди. За да го разберем по-добре, нека да разгледаме един пример:
Опитвам {
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 няма да получи шанс да се справи с грешката. За да избегнете прекъсването на скрипта, изпълнете следните стъпки:
- Стартирайте PowerShell с администраторски права.
- Трябва да използвате продължи изявление след Улов блок. Нека го разберем с пример:
Опитвам {
Get-ChildItem -Path C:\DoesNotExist
}
Хвани {
Запис-изход $_.Изключение. Съобщение
продължи
}
6. Използвайте Try-Catch-Finally
Ако операторът Try-Catch все още не работи, можете да използвате вместо него конструкцията Try-Catch-Finally. Това гарантира, че вашият код работи до завършване, дори ако бъде повдигнато изключение.
- Отворете PowerShell като администратор.
- Въведете командата с Опитай-хвани-най-накрая. Ето един пример за по-добро разбиране на скрипта:
Опитвам {
# Вашият код тук
}
Хванете [Система. Изключение] {
# Код за обработка на изключения тук
}
Накрая {
# Код за почистване тук
}
И така, това са начини, по които можете да разрешите проблема Try Catch не работи на PowerShell. Ако имате въпроси, свързани с Try-Catch, моля, споменете ги в секцията за коментари по-долу. Ще се радваме да помогнем!
Ако искате да знаете как да спрете затварянето на PowerShell след изпълнение на скрипт, можете да прочетете това.
Все още имате проблеми? Коригирайте ги с този инструмент:
СПОНСОРИРАНА
Ако съветите по-горе не са разрешили проблема ви, вашият компютър може да има по-сериозни проблеми с Windows. Препоръчваме изтегляне на този инструмент за поправка на компютър (оценен като страхотен на TrustPilot.com), за да се справите лесно с тях. След инсталирането просто щракнете върху Започни сканиране и след това натиснете Поправи всичко.