För att fixa detta leta efter felaktig syntax
- Om Try-Catch inte fungerar på PowerShell måste du leta efter felaktiga syntax- och felåtgärdsvärden.
- Den här guiden kommer att förklara de olika sätten att lösa problemet.
XINSTALLERA GENOM ATT KLICKA PÅ LADDA FILEN
- Ladda ner Restoro PC Repair Tool som kommer med patenterad teknologi (patent tillgängligt här).
- Klick Starta skanning för att hitta Windows-problem som kan orsaka PC-problem.
- Klick Reparera allt för att åtgärda problem som påverkar din dators säkerhet och prestanda.
- Restoro har laddats ner av 0 läsare denna månad.
Try-Catch uttalandet i PowerShell hanterar fel och undantag i din kod. Om Try-Catch inte fungerar som undantaget på PowerShell kan det vara frustrerande.
I den här guiden kommer vi att täcka alla sätt att lösa problemet tillsammans med de troliga orsakerna till problemet. Låt oss börja!
Vad orsakar problemet med att Try-Catch inte fungerar i PowerShell?
Det kan finnas olika anledningar till att uttalandet inte fungerar på PowerShell. Här är några av de vanligaste:
- Standardfelåtgärdsuppsättning – Om ErrorAction är inställt på Fortsätt, då kommer Try-Catch inte att fungera som förväntat.
- Syntaxfel – Om syntaxen som används är felaktig, formateringen är felaktig eller om det saknas nyckelord, kommer Try-Catch inte att fungera.
- Cmdlet- eller funktionsbeteende – Vissa funktioner och cmdlets har sitt felhanteringsbeteende, vilket kanske inte är kompatibelt med Try-Catch.
- Felaktig logik eller användning av variabler – Om det finns en olämplig användning av variabler eller felaktig logik, så fungerar inte Try-Catch.
Vad kan jag göra om Try-Catch inte fungerar på PowerShell?
1. Kontrollera syntax
- Först måste du kontrollera om du har använt rätt syntax för den version av PowerShell du använder.
- Kontrollera sedan att du har placerat Try and Catch-blocken i rätt ordning.
- Den grundläggande syntaxen för Try-Catch nämns nedan. Ersätt # kod som ska köras här med koden och # felhanteringskod här med felhanteringskoden:
Prova {
# kod att köra här
}
Fånga {
# felhanteringskod här
}
2. Kontrollera om du fångar ett specifikt fel
Du måste verifiera om du fångar specifika fel som du vill hantera och inte alla fel. Följ dessa steg för att göra detsamma:
- tryck på
Windows
Nyckeltyp PowerShell, och klicka Kör som administratör. - För att fånga ett fel måste du använda $ variabel i Catch-blocket för att komma åt information om felet som kastades. Låt oss kolla exemplet på detsamma för att förstå bättre:
Prova {
Get-ChildItem -Path C:\DoesNotExist
}
Fånga {
om ($_.Undantag. GetType().Name -eq "DirectoryNotFoundException") {
Write-Output "Katalog hittades inte."
}
annat {
kasta $_.Undantag|
}
}
3. Ställ in ErrorAction-värde
Standardvärdet för ErrorAction är Continue; men för att Try-Catch ska fungera måste du ställa in ErrorAction-värdet på Stop. För att göra detta, följ dessa steg:
- Öppen PowerShell som administratör.
- Du måste använda Set-StrictMode cmdleten eller parametern ErrorAction på enskilda cmdlets. För att förstå det bättre, låt oss titta på ett exempel:
Prova {
Get-ChildItem -Path C:\DoesNotExist -ErrorAction Stop
}
Fånga {
Write-Output $_.Undantag. Meddelande
}
- Så här återställer du din BitLocker-nyckel från OneDrive
- Hur man använder Phone Link för iPhone på Windows 11
- DaVinci Resolve High CPU-användning: Hur man minskar det
4. Använd rätt undantagstyp
Det är viktigt att använda korrekta undantag när du använder Try-Catch, eftersom det bara kan hantera undantag från systemet. Undantagstyp. Om du har använt icke-System. Undantagsfel, då fungerar inte Try-Catch.
När det gäller icke-System. Undantag, du måste använda NET"-ramverkets felhanteringsmekanism eller fånga felet.
5. Undvik skriptavslutning
Om ditt skript avslutas innan det når Catch-blocket, kommer Try-Cach inte att få en chans att hantera felet. Följ dessa steg för att undvika skriptavslutning:
- Lansera PowerShell med administratörsrättigheter.
- Du måste använda Fortsätta uttalande efter Fånga blockera. Låt oss förstå det med ett exempel:
Prova {
Get-ChildItem -Path C:\DoesNotExist
}
Fånga {
Write-Output $_.Undantag. Meddelande
Fortsätta
}
6. Använd Try-Catch-Finally
Om Try-Catch-satsen fortfarande inte fungerar kan du använda Try-Catch-Finally-konstruktionen istället. Detta säkerställer att din kod körs till slut, även om ett undantag görs.
- Öppen PowerShell som administratör.
- Skriv kommandot med Prova-fånga-äntligen. Här är ett exempel för att förstå manuset bättre:
Prova {
# Din kod här
}
Fånga [System. Undantag] {
# Undantagshanteringskod här
}
Till sist {
# Rengöringskod här
}
Så det här är sätt på vilka du kan lösa problemet med att Try Catch inte fungerar på PowerShell. Om du har några frågor relaterade till Try-Catch, nämn dem i kommentarsfältet nedan. Vi hjälper gärna till!
Om du vill veta hur du stoppar PowerShell från att stängas efter att ha kört ett skript, du kan läsa detta.
Har du fortfarande problem? Fixa dem med det här verktyget:
SPONSRAD
Om råden ovan inte har löst ditt problem kan din dator uppleva djupare Windows-problem. Vi rekommenderar ladda ner detta PC-reparationsverktyg (betygsatt Great på TrustPilot.com) för att enkelt ta itu med dem. Efter installationen klickar du bara på Starta skanning knappen och tryck sedan på Reparera allt.