Norėdami tai išspręsti, ieškokite neteisingos sintaksės
- Jei „Try-Catch“ neveikia „PowerShell“, turite patikrinti, ar nėra neteisingų sintaksės ir klaidų veiksmų verčių.
- Šiame vadove bus paaiškinti įvairūs problemos sprendimo būdai.
XĮDIEGTI PASPUSTELĖT ATSISIUNČIŲ FAILĄ
- Atsisiųskite „Restoro PC Repair Tool“. kuri pateikiama kartu su patentuotomis technologijomis (yra patentas čia).
- Spustelėkite Pradėti nuskaitymą Norėdami rasti „Windows“ problemas, kurios gali sukelti kompiuterio problemų.
- Spustelėkite Remontuoti visus Norėdami išspręsti problemas, turinčias įtakos jūsų kompiuterio saugai ir našumui.
- „Restoro“ atsisiuntė 0 skaitytojų šį mėnesį.
„Try-Catch“ pareiškimas PowerShell tvarko jūsų kodo klaidas ir išimtis. Jei „Try-Catch“ neveikia taip, kaip „PowerShell“ išimtis, tai gali būti nelinksma.
Šiame vadove apžvelgsime visus problemos sprendimo būdus ir galimas problemos priežastis. Pradėkime!
Kodėl „PowerShell“ neveikia „Try-Catch“ problema?
Gali būti įvairių priežasčių, kodėl pareiškimas neveikia PowerShell. Štai keletas dažniausiai pasitaikančių:
- Numatytasis ErrorAction nustatytas – Jei ErrorAction nustatyta kaip Tęsti, tada „Try-Catch“ neveiks taip, kaip tikėtasi.
- Sintaksės klaidos – Jei naudojama netinkama sintaksė, netinkamas formatavimas arba trūksta raktinių žodžių, „Try-Catch“ neveiks.
- Cmdlet arba funkcijos elgsena – Kai kurios funkcijos ir cmdlet yra su klaidų apdorojimo elgesiu, kuri gali būti nesuderinama su „Try-Catch“.
- Neteisinga logika arba kintamųjų naudojimas – Jei naudojamas netinkamai kintamieji arba neteisinga logika, tada „Try-Catch“ neveiks.
Ką daryti, jei „Try-Catch“ neveikia „PowerShell“?
1. Patikrinkite sintaksę
- Pirmiausia turite patikrinti, ar naudojote tinkamą naudojamos „PowerShell“ versijos sintaksę.
- Tada patikrinkite, ar „Try and Catch“ blokus įdėjote teisinga seka.
- Pagrindinė „Try-Catch“ sintaksė yra paminėta toliau. Pakeiskite # kodą, kad paleistumėte čia, į kodą ir # klaidų apdorojimo kodą čia į klaidų tvarkymo kodą:
Bandyti {
# kodas, kurį reikia paleisti čia
}
Sugauti {
# klaidų tvarkymo kodas čia
}
2. Patikrinkite, ar užfiksuojate konkrečią klaidą
Turite patikrinti, ar užfiksuojate konkrečias klaidas, kurias norite tvarkyti, o ne visas. Atlikite šiuos veiksmus, kad padarytumėte tą patį:
- Paspauskite
Windows
raktas, tipas „PowerShell“, ir spustelėkite Vykdyti kaip administratorius. - Norėdami užfiksuoti klaidą, turite naudoti $ kintamąjį bloke Catch, kad pasiektumėte informaciją apie išmestą klaidą. Kad geriau suprastume, patikrinkime to paties pavyzdį:
Bandyti {
Get-ChildItem -Path C:\DoesNot Exist
}
Sugauti {
if ($_.Išimtis. GetType().Name -eq "DirectoryNotFoundException") {
Rašymo išvestis "Katalogas nerastas".
}
Kitas {
mesti $_.Išimtis|
}
}
3. Nustatykite ErrorAction reikšmę
Numatytoji ErrorAction reikšmė yra Continue; tačiau, kad „Tryn-Catch“ veiktų, turite nustatyti ErrorAction reikšmę į Stop. Norėdami tai padaryti, atlikite šiuos veiksmus:
- Atviras PowerShell kaip administratorius.
- Atskirose cmdlet turite naudoti Set-StrictMode cmdlet arba ErrorAction parametrą. Norėdami tai geriau suprasti, pažvelkime į pavyzdį:
Bandyti {
Get-ChildItem -Path C:\DoesNot Exist - ErrorAction Stop
}
Sugauti {
Rašymo išvestis $_.Išimtis. Pranešimas
}
- Štai kaip atkurti „BitLocker“ raktą iš „OneDrive“.
- Kaip naudoti „iPhone“ skirtą telefono nuorodą „Windows 11“.
- „DaVinci“ išsprendžia didelį procesoriaus naudojimą: kaip jį sumažinti
4. Naudokite tinkamą išimties tipą
Naudojant Try-Catch svarbu naudoti teisingas išimtis, nes ji gali apdoroti tik sistemos išimtis. Išimties tipas. Jei naudojote ne sistemos. Išimčių klaidos, tada „Try-Catch“ neveiks.
Kalbant apie nesisteminę. Išimtis, jums reikia naudoti NET“ sistemos klaidų apdorojimo mechanizmą arba užfiksuoti klaidą.
5. Venkite scenarijaus nutraukimo
Jei scenarijus nutraukiamas nepasiekus bloko Catch, „Try-Cach“ neturės galimybės išspręsti klaidos. Norėdami išvengti scenarijaus nutraukimo, atlikite šiuos veiksmus:
- Paleisti PowerShell su administratoriaus teisėmis.
- Jums reikia naudoti Tęsti pareiškimas po Sugauti blokas. Supraskime tai pavyzdžiu:
Bandyti {
Get-ChildItem -Path C:\DoesNot Exist
}
Sugauti {
Rašymo išvestis $_.Išimtis. Pranešimas
Tęsti
}
6. Naudokite Pabandykite-Pagauk-Galiausiai
Jei „Try-Catch“ teiginys vis tiek neveikia, galite naudoti „Try-Catch-Finally“ konstrukciją. Tai užtikrina, kad jūsų kodas bus baigtas, net jei bus padaryta išimtis.
- Atviras PowerShell kaip administratorius.
- Įveskite komandą su Išbandyk-Pagauk-Pagaliau. Štai pavyzdys, kaip geriau suprasti scenarijų:
Bandyti {
# Jūsų kodas čia
}
Catch [System. Išimtis] {
# Išimčių tvarkymo kodas čia
}
Pagaliau {
# Valymo kodas čia
}
Taigi, tai yra būdai, kuriais galite išspręsti „Try Catch“ neveikiančią problemą „PowerShell“. Jei turite klausimų, susijusių su „Try-Catch“, paminėkite juos toliau pateiktame komentarų skyriuje. Mes mielai padėsime!
Jei norite sužinoti, kaip sustabdyti „PowerShell“ uždarymą paleidus scenarijų, galite tai perskaityti.
Vis dar kyla problemų? Pataisykite juos naudodami šį įrankį:
REMIAMAS
Jei pirmiau pateikti patarimai neišsprendė problemos, jūsų kompiuteryje gali kilti gilesnių „Windows“ problemų. Mes rekomenduojame atsisiunčiant šį kompiuterio taisymo įrankį (TrustPilot.com įvertinta puikiai), kad lengvai juos išspręstumėte. Įdiegę tiesiog spustelėkite Pradėti nuskaitymą mygtuką ir tada paspauskite Remontuoti visus.