Da biste to popravili, potražite netočnu sintaksu
- Ako Try-Catch ne radi na PowerShell-u, morate provjeriti netočnu sintaksu i vrijednosti radnje pogreške.
- Ovaj će vodič objasniti različite načine rješavanja problema.
xINSTALIRAJTE KLIKOM NA PREUZMI DATOTEKU
- Preuzmite Restoro PC Repair Tool koji dolazi s patentiranim tehnologijama (dostupan patent ovdje).
- Klik Započni skeniranje kako biste pronašli probleme sa sustavom Windows koji bi mogli uzrokovati probleme na računalu.
- Klik Popravi sve za rješavanje problema koji utječu na sigurnost i performanse vašeg računala.
- Restoro je preuzeo 0 čitatelja ovog mjeseca.
Naredba Try-Catch u PowerShell obrađuje pogreške i iznimke u vašem kodu. Ako Try-Catch ne radi kao što je to slučaj na PowerShell-u, to može biti frustrirajuće.
U ovom ćemo vodiču pokriti sve načine rješavanja problema zajedno s mogućim uzrocima problema. Počnimo!
Što uzrokuje problem Try-Catch koji ne radi u PowerShellu?
Mogu postojati različiti razlozi zašto izjava ne radi na PowerShell-u. Evo nekih od najčešćih:
- Zadana ErrorAction postavljena – Ako je ErrorAction je postavljen na Nastavi, tada Try-Catch neće raditi kako se očekuje.
- Sintaktičke pogreške – Ako je korištena sintaksa neispravna, formatiranje je netočno ili nedostaju ključne riječi, Try-Catch neće raditi.
- Cmdlet ili ponašanje funkcije – Neke funkcije i cmdleti dolaze sa svojim ponašanjem rukovanja pogreškama, što možda nije kompatibilno s Try-Catčem.
- Pogrešna logika ili korištenje varijabli – Ako postoji neprikladna uporaba varijable ili netočna logika, tada Try-Catch neće raditi.
Što mogu učiniti ako Try-Catch ne radi na PowerShell-u?
1. Provjerite sintaksu
- Prvo morate provjeriti jeste li upotrijebili ispravnu sintaksu za verziju PowerShell-a koju koristite.
- Zatim provjerite jeste li blokove Try i Catch postavili u ispravan redoslijed.
- Osnovna sintaksa za Try-Catch navedena je u nastavku. Zamijenite # kod za pokretanje ovdje s kodom i # kod za obradu pogreške ovdje s kodom za obradu pogreške:
Pokušajte {
# kod za pokretanje ovdje
}
Ulov {
# kod za obradu pogreške ovdje
}
2. Provjerite hvatate li određenu pogrešku
Morate provjeriti hvatate li određene pogreške koje želite obrađivati, a ne sve pogreške. Slijedite ove korake da biste učinili isto:
- pritisni
Windows
ključ, vrsta PowerShell, i kliknite Pokreni kao administrator. - Da biste uhvatili pogrešku, morate koristiti $ varijablu u bloku Catch za pristup informacijama o pogrešci koja je izbačena. Provjerimo primjer istog da bismo bolje razumjeli:
Pokušajte {
Get-ChildItem -Path C:\DoesNotExist
}
Ulov {
if ($_.Iznimka. GetType().Name -eq "DirectoryNotFoundException") {
Write-Output "Imenik nije pronađen."
}
inače {
izbaci $_.Exception|
}
}
3. Postavite vrijednost ErrorAction
Zadana vrijednost za ErrorAction je Nastavi; međutim, da bi Try-Catch radio, trebate postaviti vrijednost ErrorAction na Stop. Da biste to učinili, slijedite ove korake:
- Otvoren PowerShell kao administrator.
- Morate koristiti cmdlet Set-StrictMode ili parametar ErrorAction na pojedinačnim cmdletima. Da bismo to bolje razumjeli, pogledajmo primjer:
Pokušajte {
Get-ChildItem -Path C:\DoesNotExist -ErrorAction Stop
}
Ulov {
Write-Output $_.Iznimka. Poruka
}
- Evo kako oporaviti svoj BitLocker ključ s OneDrivea
- Kako koristiti Phone Link za iPhone na Windows 11
- DaVinci Resolve Visoko korištenje CPU-a: Kako ga smanjiti
4. Koristite ispravnu vrstu iznimke
Važno je koristiti ispravne iznimke kada koristite Try-Catch, jer može obraditi samo iznimke sustava. Vrsta iznimke. Ako ste koristili ne-Sustav. Pogreške iznimke, tada Try-Catch neće raditi.
Što se tiče ne-Sustava. Iznimka, trebate upotrijebiti mehanizam za rukovanje pogreškama okvira NET ili uhvatiti pogrešku.
5. Izbjegavajte prekid skripte
Ako se vaša skripta prekine prije nego što dođe do bloka Catch, Try-Cach neće imati priliku riješiti pogrešku. Da biste izbjegli prekid skripte, slijedite ove korake:
- Pokreni PowerShell s administratorskim pravima.
- Morate koristiti Nastaviti izjava nakon Ulov blok. Razumimo to na primjeru:
Pokušajte {
Get-ChildItem -Path C:\DoesNotExist
}
Ulov {
Write-Output $_.Iznimka. Poruka
Nastaviti
}
6. Upotrijebite Try-Catch-Finally
Ako naredba Try-Catch i dalje ne radi, umjesto nje možete upotrijebiti konstrukciju Try-Catch-Finally. Ovo osigurava da se vaš kod izvodi do kraja, čak i ako se pojavi iznimka.
- Otvoren PowerShell kao administrator.
- Upišite naredbu s Pokušaj-uhvati-napokon. Evo primjera za bolje razumijevanje skripte:
Pokušajte {
# Vaš kod ovdje
}
Catch [Sustav. Iznimka] {
# Kod za rukovanje iznimkama ovdje
}
konačno {
# Kod za čišćenje ovdje
}
Dakle, ovo su načini na koje možete riješiti problem Try Catch ne radi na PowerShellu. Ako imate pitanja u vezi s Try-Catchom, spomenite ih u odjeljku za komentare u nastavku. Rado ćemo pomoći!
Ako želite znati kako zaustaviti zatvaranje PowerShell nakon pokretanja skripte, možete pročitati ovo.
Još uvijek imate problema? Popravite ih ovim alatom:
SPONZORIRANO
Ako gornji savjeti nisu riješili vaš problem, vaše računalo može imati dublje probleme sa sustavom Windows. Preporučujemo preuzimajući ovaj alat za popravak računala (ocijenjeno Sjajno na TrustPilot.com) kako biste im se jednostavno obratili. Nakon instalacije jednostavno kliknite Započni skeniranje i zatim pritisnite na Popravi sve.