Har du nogensinde set et program crash? I så fald ved du, hvor frustrerende det kan blive, og hvis du er en programmør, vil du sandsynligvis forbande udvikleren for ikke at sætte den rigtige fejlhåndteringsmekanisme i den! Og det er præcis, hvad dette stykke handler om. Fejlhåndtering er en integreret del af en applikations kode, da den fanger uforudsete fejl og sikrer, at applikationen afsluttes sikkert., Som med de fleste programmeringssprog understøtter Po .ershell også en fejlhåndteringsmekanisme kaldet try-catch, men før det, lad os lære lidt om fejlhåndtering i Po .ershell.
Hvorfor har du brug for fejlhåndtering?
et ret grundlæggende spørgsmål, som de fleste af jer måske allerede ved. Lad os alligevel kort berøre det for at gentage nogle vigtige punkter.
fejlhåndtering hjælper på følgende måder.
- forhindrer et program i at gå ned.
- gør det nemt for brugeren at vide, at der er noget galt, og at de skal kontakte supportteamet.,
- indeholder detaljer om fejlen og dens mulige årsager.
- hjælper med yderligere analyse og for at løse problemerne.
- giver mulighed for at tilpasse de fejlmeddelelser, der sendes til slutbrugere.
- gør det nemt at vedligeholde din kode.
- dit program kan fortsætte med at fungere, selv efter fejlen, afhængigt af fejlen og din kode.
- anses for at være en god programmering praksis.
nu hvor vi har berørt fordelene ved fejlhåndtering, lad os se, hvordan det kan implementeres i Po .ershell.,
fejlhåndtering i Po .ershell
stort set er der to typer fejl, og de er: afslutnings-og ikke-afslutningsfejl.
afslutnings-og ikke-afslutningsfejl
Som navnet antyder, er afslutningsfejl dem, der er kritiske og afslutter programmet pludseligt, mens ikke-afslutningsfejl tillader programmet at køre, men kan give det forkerte output eller nogle gange endda drastiske resultater. Nu, hvis du undrer dig, er ikke-terminerende fejl potentielt farligere end terminerende fejl, fordi du ikke ved, hvilke aspekter der kan ændres.,
nogle mulige afslutningsfejl er ude af hukommelse og syntaksfejl, mens den store del af fejl i programmeringslogik og uventede fejl falder i kategorien ikke-terminerende.
Konvertering af ikke-terminering fejl at opsige fejl
Som en programmør, kan du fortælle PowerShell til at behandle ikke-terminering fejl som afslutning fejl, så programmet stopper, hvis det møder, som bestemt fejl. Denne ændring hjælper dig med at håndtere fejlen ved hjælp af Po .ershell try-catch block, fordi ikke-terminerende fejl som standard ikke kan håndteres med try-catch block.,hvis du vil konvertere ikke-terminerende fejl til termineringsfejl, skal du bruge en parameter kaldet ErrorAction. Hver cmdlet understøtter denne parameter, og den er designet til at fortælle programmet, hvilken handling det skal tage, når det støder på en fejl. Fejlhandling leveres med følgende indstillinger
- Stop: dette stopper programmet og behandler det som en afslutningsfejl.
- Fortsæt: tillader programmet at fortsætte, og fejlen vises.
- lydløst Fortsæt: programmet kører, og der vises ingen fejl.
- Ignorer: ignorerer fejlen og fortsætter.,spørg: viser fejlen og kontrollerer, om den skal fortsætte.
- suspendere: dette kan bruges i en Powerindo .s Po .ershell-arbejdsgang. Begrænsningen er, at den ikke kan suspendere avancerede funktioner.
syntaks for ErrorAction er:
$variable = Get:content \user.txt:ErrorAction Stop
Denne kommando ændrer en ikke-afslutning fejl i en afslutning, så du kan håndtere det.
Opbygning af en try-catch-blok
Når du har en afslutning fejl eller har konverteret en ikke-terminering en til en afslutning fejl, kan du klare det ved hjælp af PowerShell try-catch-blok.,
Den generiske syntaks er:
I dette eksempel er data fra den fil, der er gemt i $variabel, og hvis der er en fejl, koden bliver til catch-blok, og viser meddelelsen. Ovenstående eksempel er en grundlæggende, designet til at give dig en ID.om syntaks og brug. I den virkelige verden vil du dog bruge denne Po .ershell try-catch block til at få indsigt i fejlen og handle i overensstemmelse hermed.,
praktiske anvendelser af Po .ershell try-catch block
Du kan få adgang til fejloptegnelsen inde i fangstblokken. Faktisk gemmes fejlmeddelelsen i den aktuelle variabel $_. Du kan gøre noget med denne fejl rekord såsom parse fejlen, vise en advarsel, og mere. En stærk egenskab af den aktuelle variabel er undtagelsen, da ideen er at vide mere om de uventede begivenheder, der fik programmet til at stoppe. Også, undtagelse selv kommer med mange attributter som ItemName, GetType, besked, etc.,,
for eksempel:
try{$variable = Get:content \user.txt:ErrorAction Stop}catch{write:output $_Exception.Message}
nu hvor det grundlæggende er klart, lad os gå til den avancerede del.
Du kan bruge fangstblokken til at fange specifikke undtagelser, forudsat at du kender eller forventer dem. For eksempel, lad os sige, at du ønsker en bestemt meddelelse, der skal vises, hvis filen er ikke fundet, og andre meddelelser til andre undtagelser, din kode, skal se ud som dette:
Nogle punkter at overveje, når brug af try-catch
husk på følgende punkter, mens du bruger PowerShell try-catch-blok.,
- Der bør ikke være nogen kode mellem prøveblokkens afslutningsbøjler og fangstkommandoen. Med andre ord, ordet “fange” straks skal være i den næste linje efter den afsluttende parenteser i try-blokken
- Dette PowerShell try-catch-blok er mest nyttigt til at håndtere fejl, som du regner med kan ske i programmet.
- fangstblokken fanger enhver undtagelse, der kastes inde i prøveblokken uanset dens oprindelse.
- Po .ershell try-catch-kommando er et praktisk alternativ til flere if-udsagn.,
- prøveblokken kan efterfølges af et hvilket som helst antal fangstblokke, men de skal være sammenhængende uden nogen anden kode imellem.
Endelig blok
Der er noget, der hedder en endelig blok, som du kan bruge med try-catch. Dette er en valgfri og behøver ikke at blive brugt på alle tidspunkter. Denne blok udfører den kode, der er nævnt inde i den, uanset om der var en fejl eller ej. Denne blok skal komme lige efter lukkebøjlerne i den sidste fangstblok.,
For eksempel:
i ovenstående eksempel tilføjes en post i logfilen, hver gang der gøres forsøg på at få adgang til filen, uanset om filen blev fundet eller ej.
Try-catch: prøv det og undgå nedbrud
fejlhåndtering er en vigtig del af ethvert program, da det forhindrer programmet i at gå ned og hjælper dig med at analysere den mulige årsag til fejlen. Po .ershell try-catch block er en effektiv måde at fange afslutningsfejl på, så du kan håndtere dem sikkert uden at forårsage et nedbrud., Det hjælper også med den detaljerede analyse og en forståelse af problemet. Af disse grunde er det et must-have i dine Po .ershell-scripts.
Leave a Reply