Har du noen gang sett et program krasjer? Hvis så, du vet hvor frustrerende det kan få, og hvis du er en programmerer, vil du sannsynligvis være å forbanne utvikleren for å ikke sette i riktig håndtering av feil mekanisme i det! Og det er akkurat hva dette stykket handler om. Feil håndtering er en integrert del av et program koden som den fanger uforutsette feil og sikrer at programmet er avsluttet på en sikker måte., Som med de fleste programmeringsspråk, PowerShell støtter også en feil håndtering mekanisme som kalles try-catch, men før det, la oss lære litt om håndtering av feil i PowerShell.
Hvorfor trenger du feil håndtering?
En ganske grunnleggende spørsmål som de fleste av dere kanskje allerede vet. Likevel, la oss kort trykk på den for å gjenta noen viktige poeng.
Feil håndtering bidrar til, på følgende måter.
- Hindrer et program fra å krasje.
- Gjør det enkelt for brukeren å vite at noe er galt, og at de bør ta kontakt med support team.,
- Gir opplysninger om feil og dens mulige årsaker.
- Hjelper til med videre analyse og til å løse problemer.
- Gir mulighet til å tilpasse feilmeldinger sendes til sluttbrukere.
- Gjør det enkelt å vedlikeholde koden din.
- programmet kunne fortsette å fungere selv etter feil, avhengig av feilen og koden din.
- Anses å være en god programmerer praksis.
Nå som vi har rørt på fordelene av feil håndtering, la oss se hvordan det kan gjennomføres i PowerShell.,
håndtering av Feil i PowerShell
Generelt kan man si at det er to typer feil, og de er: avslutning og ikke-terminerende feil.
Avslutning, og ikke-terminerende feil
Som navnet antyder, avslutte feil, er de som er kritiske og avslutte programmet brått, mens ikke-terminerende feil tillate programmet å kjøre, men kan gi feil utgang, eller noen ganger, selv drastiske resultater. Hvis du nå lurer på, ikke-terminerende feil er potensielt mer farlig enn å avslutte feil fordi du ikke vet hva aspekter kan bli endret.,
Noen mulige avslutte feil er ute av minne og syntaks feil mens en stor del av feilene i programmering logikk og uventede feil falle i den ikke-terminerende kategori.
Konvertere ikke-terminerende feil å avslutte feil
Som en programmerer, kan du fortelle PowerShell til å behandle ikke-terminerende feil som avslutning av feil, slik at programmet stopper hvis den støter på en bestemt feil. Denne endringen bidrar du til å håndtere feil ved hjelp av PowerShell-try-catch-blokken på grunn av standard ikke-terminerende feil ikke kan håndteres med try-catch-blokk.,
for Å konvertere ikke-terminerende feil i å avslutte feil, kan du bruke en parameter kalt ErrorAction. Hver cmdlet støtter denne parameteren, og den er utformet for å fortelle programmet hvilke tiltak det bør ta når det oppdager en feil. ErrorAction kommer med følgende valg
- Stopp: Dette stopper programmet og behandler den som en avslutning feil.
- Fortsett: Lar programmet til å fortsette med, og feilen vises.
- SilentlyContinue: programmet kjører og ingen feil vises.
- Ignorer: Ignorerer feil og fortsetter.,
- Spørre: Viser feil, og sjekker om det skal fortsette.
- Suspender: Dette kan brukes i et Windows PowerShell workflow. Begrensningen er at det ikke kan suspendere avanserte funksjoner.
syntaksen for ErrorAction er:
$variable = Get:content \user.txt:ErrorAction Stop
Denne kommandoen endrer ikke-terminerende feil i en oppsigelse, slik at du kan håndtere det.
Bygge en try-catch-blokk
Når du har en avslutning feil eller har konvertert et ikke-avslutte en til en avslutning feil, kan du håndtere det ved hjelp av PowerShell-try-catch-blokk.,
Den generisk syntaks er:
I dette eksempelet, data fra filen lagres i $variabel, og hvis det er en feil, koden blir til fange blokkere og viser meldingen. I eksemplet ovenfor er en enkel en, som er designet for å gi deg en idé om syntaks og bruk. I den virkelige verden om du vil bruke denne PowerShell-try-catch-blokk for å få innsikt om feil og iverksette tiltak deretter.,
Praktisk bruk av PowerShell-try-catch-blokk
Du kan få tilgang til feilen ta opp inne i catch-blokk. Faktisk, feilmelding er lagret i den aktuelle variabelen $_. Du kan gjøre noe med denne feilen spille inn, for eksempel analysere feil, vises en advarsel, og mer. En kraftig attributtet for den aktuelle variabelen er Unntaket som ideen er å vite mer om det uventede hendelser som forårsaket program for å stoppe. Også Unntak seg selv kommer med mange attributter som ItemName, GetType, Melding, etc.,,
For eksempel slik:
try{$variable = Get:content \user.txt:ErrorAction Stop}catch{write:output $_Exception.Message}
Nå som det grunnleggende er klar, la oss gå til avansert del.
Du kan bruke catch-blokk for å fange spesifikke unntak, forutsatt at du vet eller forutse dem. For eksempel, la oss si at du ønsker en bestemt meldingen vises hvis filen ikke finnes, og andre meldinger til andre unntak koden din skal se ut som dette:
Noen punkter du bør vurdere når du bruker try-catch
vær oppmerksom på følgende punkter når du bruker PowerShell-try-catch-blokk.,
- Det bør være ingen kode mellom avslutte bukseseler av try-blokken og ta kommandoen. Med andre ord, ordet «fange» bør umiddelbart bli i neste linje etter den avsluttende bukseseler av try-blokk
- Dette PowerShell-try-catch-blokken er mest nyttige for å håndtere feil at du forutse hva som kan skje i programmet.
- catch-blokk vil fange noen unntak kastet inne i try-blokken uavhengig av dets opprinnelse.
- PowerShell-try-catch-kommandoen er en praktisk alternativ til flere hvis uttalelser.,
- try-blokk kan bli fulgt av en rekke catch-blokker, men de bør være sammenhengende med ingen annen kode i-mellom.
til Slutt blokkere
Det er noe som heter en endelig blokk som du kan bruke med try-catch. Dette er et valgfritt ett og trenger ikke å bli brukt til alle tider. Denne blokken vil kjøre koden nevnt inne i den, uavhengig av om det var en feil eller ikke. Denne blokka skal komme rett etter den avsluttende tannregulering i de siste catch-blokk.,
For eksempel slik:
I eksempelet ovenfor, er det en oppføring, vil havne i loggfilen hver gang det gjøres et forsøk på å få tilgang til filen, uavhengig av om filen ble funnet eller ikke.
Try-catch: Prøv det ut og avverge krasjer
Feil håndtering er en viktig del av et program som det forhindrer programmer fra å krasje, og hjelper deg med å analysere den mulige årsaken til feilen. PowerShell-try-catch-blokken er en effektiv måte å fange avslutte feil, slik at du kan håndtere dem trygt uten å forårsake krasj., Det hjelper med detaljert analyse og forståelse av problemet, så vel. For disse grunner, det er en må-ha i PowerShell-skript.
Leave a Reply