Ak to chcete opraviť, hľadajte nesprávnu syntax
- Ak Try-Catch nefunguje v prostredí PowerShell, musíte skontrolovať nesprávnu syntax a hodnoty chybových akcií.
- Táto príručka vysvetlí rôzne spôsoby riešenia problému.
XNAINŠTALUJTE KLIKNUTÍM NA STIAHNUŤ SÚBOR
- Stiahnite si Restoro PC Repair Tool ktorý prichádza s patentovanými technológiami (dostupný patent tu).
- Kliknite Spustite skenovanie nájsť problémy so systémom Windows, ktoré by mohli spôsobovať problémy s počítačom.
- Kliknite Opraviť všetko na opravu problémov ovplyvňujúcich bezpečnosť a výkon vášho počítača.
- Restoro bol stiahnutý používateľom 0 čitateľov tento mesiac.
Vyhlásenie Try-Catch v PowerShell spracováva chyby a výnimky vo vašom kóde. Ak Try-Catch nefunguje tak, ako je to v PowerShell, môže to byť frustrujúce.
V tejto príručke sa budeme zaoberať všetkými spôsobmi, ako problém vyriešiť, spolu s pravdepodobnými príčinami problému. Začnime!
Čo spôsobuje, že problém Try-Catch nefunguje v prostredí PowerShell?
Dôvody, prečo vyhlásenie nefunguje v prostredí PowerShell, môžu byť rôzne. Tu sú niektoré z najbežnejších:
- Predvolená ErrorAction nastavená – Ak ErrorAction je nastavená na Pokračovať, potom Try-Catch nebude fungovať podľa očakávania.
- Syntaktické chyby – Ak je použitá syntax nesprávna, formátovanie je nesprávne alebo chýbajú kľúčové slová, funkcia Try-Catch nebude fungovať.
- Správanie cmdlet alebo funkcie – Niektoré funkcie a rutiny cmdlet sa dodávajú so správaním pri odstraňovaní chýb, ktoré nemusí byť kompatibilné s Try-Catch.
- Nesprávna logika alebo použitie premenných – Ak dôjde k nevhodnému použitiu premenných alebo nesprávna logika, potom Try-Catch nebude fungovať.
Čo môžem urobiť, ak Try-Catch nefunguje v prostredí PowerShell?
1. Skontrolujte syntax
- Najprv musíte skontrolovať, či ste použili správnu syntax pre verziu PowerShell, ktorú používate.
- Potom skontrolujte, či ste umiestnili bloky Try and Catch v správnom poradí.
- Základná syntax pre Try-Catch je uvedená nižšie. Nahraďte # kód, ktorý sa tu spustí, kódom a # kód spracovania chýb tu kódom spracovania chýb:
Skúste {
Tu môžete spustiť # kód
}
Chytiť {
Tu je # kód spracovania chýb
}
2. Skontrolujte, či zachytávate konkrétnu chybu
Musíte overiť, či zachytávate konkrétne chyby, ktoré chcete spracovať, a nie všetky chyby. Postupujte podľa týchto krokov a urobte to isté:
- Stlačte tlačidlo
Windows
kľúč, typ PowerShell, a kliknite Spustiť ako správca. - Ak chcete zachytiť chybu, musíte použiť $ premennej v bloku Catch na prístup k informáciám o chybe, ktorá bola vyvolaná. Pozrime sa na príklad toho istého, aby sme to lepšie pochopili:
Skúste {
Get-ChildItem -Cesta C:\Neexistuje
}
Chytiť {
if ($_.Exception. GetType().Name -eq "DirectoryNotFoundException") {
Zápis a výstup "Adresár nenájdený."
}
inak {
hodiť $_.Výnimka|
}
}
3. Nastavte hodnotu ErrorAction
Predvolená hodnota ErrorAction je Continue; Aby však funkcia Try-Catch fungovala, musíte nastaviť hodnotu ErrorAction na Stop. Ak to chcete urobiť, postupujte takto:
- OTVORENÉ PowerShell ako správca.
- Na jednotlivých cmdletoch musíte použiť rutinu cmdlet Set-StrictMode alebo parameter ErrorAction. Aby sme to lepšie pochopili, pozrime sa na príklad:
Skúste {
Get-ChildItem -Cesta C:\Neexistuje -ErrorAction Stop
}
Chytiť {
Write-Output $_.Exception. Správa
}
- Tu je postup, ako obnoviť kľúč BitLocker z OneDrive
- Ako používať Phone Link pre iPhone v systéme Windows 11
- DaVinci rieši vysoké využitie procesora: Ako ho znížiť
4. Použite správny typ výnimky
Pri používaní Try-Catch je dôležité používať správne výnimky, pretože dokáže spracovať iba výnimky systému. Typ výnimky. Ak ste použili iné ako System. Výnimky, potom Try-Catch nebude fungovať.
Čo sa týka nesystémového. Výnimkou je, že musíte použiť mechanizmus spracovania chýb rámca NET alebo zachytiť chybu.
5. Vyhnite sa ukončeniu skriptu
Ak je váš skript ukončený pred dosiahnutím bloku Catch, Try-Cach nedostane šancu chybu vyriešiť. Ak sa chcete vyhnúť ukončeniu skriptu, postupujte takto:
- Spustiť PowerShell s právami správcu.
- Musíte použiť ďalej vyhlásenie po Chytiť blokovať. Pochopme to na príklade:
Skúste {
Get-ChildItem -Cesta C:\Neexistuje
}
Chytiť {
Write-Output $_.Exception. Správa
ďalej
}
6. Použite funkciu Try-Catch-Finally
Ak príkaz Try-Catch stále nefunguje, môžete namiesto toho použiť konštrukciu Try-Catch-Finally. To zaisťuje, že váš kód bude dokončený, aj keď je vyvolaná výnimka.
- OTVORENÉ PowerShell ako správca.
- Zadajte príkaz s Skúste-Chyť-Konečne. Tu je príklad na lepšie pochopenie skriptu:
Skúste {
# Tu je váš kód
}
Catch [System. Výnimka] {
# Tu je kód spracovania výnimiek
}
Nakoniec {
# Čistiaci kód tu
}
Toto sú spôsoby, ako môžete vyriešiť problém, že funkcia Try Catch nefunguje v prostredí PowerShell. Ak máte nejaké otázky týkajúce sa Try-Catch, uveďte ich v sekcii komentárov nižšie. Radi pomôžeme!
Ak chcete vedieť, ako zastaviť zatvorenie prostredia PowerShell po spustení skriptu, toto si môžeš prečítať.
Stále máte problémy? Opravte ich pomocou tohto nástroja:
SPONZOROVANÉ
Ak rady uvedené vyššie nevyriešili váš problém, váš počítač môže mať hlbšie problémy so systémom Windows. Odporúčame stiahnutím tohto nástroja na opravu počítača (hodnotené ako skvelé na TrustPilot.com), aby ste ich mohli jednoducho osloviť. Po inštalácii stačí kliknúť na Spustite skenovanie tlačidlo a potom stlačte Opraviť všetko.