Ennek javításához keressen helytelen szintaxist
- Ha a Try-Catch nem működik a PowerShell-en, akkor ellenőriznie kell, hogy nem megfelelő-e a szintaxis és a hibaműveleti értékek.
- Ez az útmutató elmagyarázza a probléma megoldásának különböző módjait.
xTELEPÍTÉS A LETÖLTÉSI FÁJLRA KATTINTVA
- Töltse le a Restoro PC-javító eszközt amely a szabadalmaztatott technológiákkal együtt jár (szabadalom elérhető itt).
- Kattintson Indítsa el a szkennelést hogy megtalálja azokat a Windows-problémákat, amelyek számítógépes problémákat okozhatnak.
- Kattintson Mindet megjavít a számítógép biztonságát és teljesítményét befolyásoló problémák megoldásához.
- A Restoro-t letöltötte 0 olvasói ebben a hónapban.
A Try-Catch nyilatkozat be PowerShell kezeli a kódban lévő hibákat és kivételeket. Ha a Try-Catch nem működik a PowerShell kivételével, az frusztráló lehet.
Ebben az útmutatóban bemutatjuk a probléma megoldásának összes módját, valamint a probléma valószínű okait. Kezdjük!
Mi okozza, hogy a Try-Catch nem működik a PowerShellben?
Számos oka lehet annak, hogy az utasítás nem működik a PowerShell-en. Íme néhány a leggyakoribbak közül:
- Alapértelmezett hibaművelet beállítva – Ha a Az ErrorAction Continue értékre van állítva, akkor a Try-Catch nem működik a várt módon.
- Szintaktikai hibák – Ha a használt szintaxis nem megfelelő, a formázás nem megfelelő, vagy hiányoznak a kulcsszavak, a Try-Catch nem fog működni.
- Parancsmag vagy függvény viselkedése – Egyes funkciók és parancsmagok hibakezelési viselkedésükkel rendelkeznek, amelyek esetleg nem kompatibilisek a Try-Catch programmal.
- Hibás logika vagy változók használata – Ha nem rendeltetésszerű használatról van szó változók vagy hibás logika, akkor a Try-Catch nem fog működni.
Mit tehetek, ha a Try-Catch nem működik a PowerShell-en?
1. Ellenőrizze a szintaxist
- Először is ellenőriznie kell, hogy a megfelelő szintaxist használta-e a PowerShell használt verziójához.
- Ezután ellenőrizze, hogy a Try and Catch blokkokat a megfelelő sorrendben helyezte-e el.
- A Try-Catch alapvető szintaxisa alább található. Cserélje le az itt futtatandó # kódot a kódra, a # hibakezelési kódot pedig a hibakezelő kódra:
Próbáld ki {
# kód futni itt
}
Catch {
# hibakezelési kód itt
}
2. Ellenőrizze, hogy egy adott hibát nem csap-e be
Ellenőriznie kell, hogy konkrét, kezelni kívánt hibákat csap-e be, és nem az összes hibát. Ugyanezhez kövesse az alábbi lépéseket:
- megnyomni a
ablakok
kulcs, típus PowerShell, és kattintson Futtatás rendszergazdaként. - A hiba csapdázásához használja a $ változót a Catch blokkban, hogy hozzáférjen a felmerült hibával kapcsolatos információkhoz. Nézzük meg a példát, hogy jobban megértsük:
Próbáld ki {
Get-ChildItem -Path C:\DoesNot Exist
}
Catch {
if ($_.Kivétel. GetType().Name -eq "DirectoryNotFoundException") {
Write-Output "A könyvtár nem található."
}
más {
dobja $_.Exception|
}
}
3. Állítsa be az ErrorAction értéket
Az ErrorAction alapértelmezett értéke Continue; azonban a Try-Catch működéséhez az ErrorAction értékét Stop értékre kell állítania. Ehhez kövesse az alábbi lépéseket:
- Nyisd ki PowerShell rendszergazdaként.
- Az egyes parancsmagokon a Set-StrictMode parancsmagot vagy az ErrorAction paramétert kell használnia. Hogy jobban megértsük, nézzünk egy példát:
Próbáld ki {
Get-ChildItem - Path C:\DoesNot Exist - ErrorAction Stop
}
Catch {
Write-Output $_.Exception. Üzenet
}
- Így állíthatja vissza a BitLocker-kulcsot a OneDrive-ból
- A Phone Link for iPhone használata Windows 11 rendszeren
- DaVinci Resolve Magas CPU-használat: Hogyan csökkenthető
4. Használja a megfelelő kivételtípust
Fontos, hogy a Try-Catch használatakor helyes kivételeket használjunk, mivel csak a rendszer kivételeit képes kezelni. Kivétel típusa. Ha nem rendszert használt. Kivételes hibák, akkor a Try-Catch nem fog működni.
Ami a nem rendszert illeti. Ez alól kivételt képez, ha a NET” keretrendszer hibakezelési mechanizmusát kell használnia, vagy el kell kapnia a hibát.
5. Kerülje a szkript leállítását
Ha a szkript a Catch blokk elérése előtt leáll, a Try-Cach nem kap lehetőséget a hiba kezelésére. A szkript leállásának elkerülése érdekében kövesse az alábbi lépéseket:
- Dob PowerShell rendszergazdai jogokkal.
- Használnia kell a Folytatni utáni nyilatkozat Fogás Blokk. Értsük meg egy példán keresztül:
Próbáld ki {
Get-ChildItem -Path C:\DoesNot Exist
}
Catch {
Write-Output $_.Exception. Üzenet
Folytatni
}
6. Használja a Try-Catch-Finally-t
Ha a Try-Catch utasítás továbbra sem működik, használhatja helyette a Try-Catch-Finally konstrukciót. Ez biztosítja, hogy a kód teljesen lefusson, még akkor is, ha kivétel történik.
- Nyisd ki PowerShell rendszergazdaként.
- Írja be a parancsot a következővel: Próbáld meg-elkapni-végre. Íme egy példa a szkript jobb megértéséhez:
Próbáld ki {
# Itt a kódod
}
Catch [System. Kivétel] {
# Kivételkezelési kód itt
}
Végül {
# Tisztító kód itt
}
Tehát ezekkel a módokkal oldhatja meg a Try Catch nem működik problémáját a PowerShellben. Ha bármilyen kérdése van a Try-Catch-el kapcsolatban, kérjük, említse meg őket az alábbi megjegyzések részben. Szívesen segítünk!
Ha szeretné tudni, hogyan akadályozza meg a PowerShell bezárását egy szkript futtatása után, ezt olvashatod.
Még mindig vannak problémái? Javítsa ki őket ezzel az eszközzel:
SZPONSORÁLT
Ha a fenti tanácsok nem oldották meg a problémát, a számítógépén mélyebb Windows-problémák léphetnek fel. Ajánljuk töltse le ezt a PC-javító eszközt (Nagyon értékelték a TrustPilot.com webhelyen), hogy könnyen kezeljék őket. A telepítés után egyszerűen kattintson a Indítsa el a szkennelést gombot, majd nyomja meg Mindet megjavít.