Kaip ištaisyti, kad „Try Catch PowerShell“ neveikia?

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.
Pabandykite užfiksuoti, kad powershell neveikia

XĮDIEGTI PASPUSTELĖT ATSISIUNČIŲ FAILĄ

Norėdami išspręsti įvairias kompiuterio problemas, rekomenduojame „Restoro PC Repair Tool“:Ši programinė įranga ištaisys įprastas kompiuterio klaidas, apsaugos jus nuo failų praradimo, kenkėjiškų programų, aparatinės įrangos gedimų ir optimizuos jūsų kompiuterį maksimaliam našumui. Išspręskite kompiuterio problemas ir pašalinkite virusus dabar atlikdami 3 paprastus veiksmus:
  1. Atsisiųskite „Restoro PC Repair Tool“. kuri pateikiama kartu su patentuotomis technologijomis (yra patentas čia).
  2. Spustelėkite Pradėti nuskaitymą Norėdami rasti „Windows“ problemas, kurios gali sukelti kompiuterio problemų.
  3. 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ę

  1. Pirmiausia turite patikrinti, ar naudojote tinkamą naudojamos „PowerShell“ versijos sintaksę.
  2. Tada patikrinkite, ar „Try and Catch“ blokus įdėjote teisinga seka.
  3. 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į:

  1. Paspauskite Windows raktas, tipas „PowerShell“, ir spustelėkite Vykdyti kaip administratorius.Scenarijus
  2. 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:

  1. Atviras PowerShell kaip administratorius.
  2. Atskirose cmdlet turite naudoti Set-StrictMode cmdlet arba ErrorAction parametrą. Norėdami tai geriau suprasti, pažvelkime į pavyzdį:
Išbandykite Catch naudodami ErrorAction Stop PowerShell

Bandyti {
Get-ChildItem -Path C:\DoesNot Exist - ErrorAction Stop
}
Sugauti {
Rašymo išvestis $_.Išimtis. Pranešimas
}

Skaitykite daugiau apie šią temą
  • Š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:

  1. Paleisti PowerShell su administratoriaus teisėmis.
  2. Jums reikia naudoti Tęsti pareiškimas po Sugauti blokas. Supraskime tai pavyzdžiu:
pabandyk pagaliau sugauti

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.

  1. Atviras PowerShell kaip administratorius.
  2. Į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.

Kaip pašalinti numatytąsias „Windows 11“ programas naudojant „PowerShell“.

Kaip pašalinti numatytąsias „Windows 11“ programas naudojant „PowerShell“.Powershell„Windows 11“

Pašalinkite nepageidaujamas numatytas programas naudodami paprastą komandąNorėdami pašalinti sistemos programas iš kompiuterio, turite paleisti „Windows PowerShell“ programą su administratoriaus te...

Skaityti daugiau
Pataisymas: terminas nėra atpažįstamas kaip cmdlet pavadinimas

Pataisymas: terminas nėra atpažįstamas kaip cmdlet pavadinimasPowershell

Norėdami išspręsti šią problemą, patikrinkite, ar PowerShell scenarijuje nėra klaidųĮdiekite reikalingus modulius, kad ištaisytumėte terminą, „PowerShell“ neatpažįstamas kaip pavadinimo klaida.Įsit...

Skaityti daugiau
Wsmprovhost.exe: kas tai yra ir kaip sustabdyti didelį procesoriaus naudojimą

Wsmprovhost.exe: kas tai yra ir kaip sustabdyti didelį procesoriaus naudojimąDidelis Procesoriaus NaudojimasPowershell

Patikrinkite ekspertų sprendimus, kad sumažintumėte procesoriaus naudojimąThe wsmprohost.exe procesas yra labai svarbus ir susietas su nuotolinėmis sesijomis sistemoje „Windows“.Kai kurie vartotoja...

Skaityti daugiau