Try-Prote-uttalelser i Python

Try-Prote-uttalelser i Python
“Når du skriver kode i Python, spesielt hvis det er litt mer komplisert, er det mer sannsynlig at du vil møte feil. Så måten å skrive god kode på er å håndtere disse feilene dyktig. Vi må sørge for at vi jevnt kan røre disse feilene til en annen rute. Og slik, for dette formålet, i Python, ble prøve-bortfallsuttalelsen opprettet. Try-bortfallsuttalelsen består av en prøveblokk og en eller flere unntatt blokker. I denne opplæringen lærer vi om Try-unnslippe uttalelsen.”

Prøv-bortsett fra uttalelsen

Try-bortfallsuttalelsen ser ut som dette:

prøve:
Kode
unntatt unntaksnavn:
Kode

Så vi har Try -uttalelsen, og deretter plasseres koden der; Dette er hovedkoden du ønsker å utføre. Så er det unntatt uttalelse med et annet sett med koder, men denne koden er ment å håndtere unntaket. Python vil forsøke å først og fremst utføre all koden i Try -setningen. Når det ikke er noen feil, så går alt bra, og unntatt uttalelsen blir ganske enkelt overført (hoppet over). Hvis det derimot oppstår et unntak, vil Python sjekke om det samsvarer med unntaksnavnet i unntatt uttalelsen. Hvis det samsvarer, vil den begynne å utføre unntatt uttalelsens kode.

Eksempel 1

hoved-.py
prøve:
y = (2/3)
trykk (y)
Bortsett fra ZerodIVisionError som feil:
Print ("Feil: % S" % Feil)
Trykk ("Denne uttalelsen er utenfor Try-unntaksklausulen.")

Produksjon:

0.66666666666666666

Denne uttalelsen er utenfor prøve-bortfallsklausulen.

Prosessen ferdig med exit code 0

Så her har vi en Try-bortfallsuttalelse og deretter litt kode utenfor Try-Ascept-blokken. Fordi vi deler 2 med 3 og at det gir oss et gyldig nummer, vil det utføre Try -setningen og deretter omgå unntatt uttalelsen - fordi det ikke er noen ZerodivisionError. Når den omgår unntatt uttalelsen, fortsetter den med resten av programmet og ender jevnt. Poenget med dette eksemplet er å vise at unntatt uttalelse kan omgås.

Eksempel nr. 2

hoved-.py
prøve:
y = (2/0)
trykk (y)
Bortsett fra ZerodIVisionError som feil:
Print ("Feil: % S" % Feil)

Produksjon:

Feil: Divisjon med null

Prosessen ferdig med exit code 0

I dette tilfellet, i prøveblokken, prøver vi å dele 2 med 0 og tilordne verdien til y. Som du kanskje eller ikke vet, kan du ganske enkelt ikke dele med 0, så det er et lite problem her. Siden vi ønsker å være dyktige i å håndtere feil, har vi bestemt oss for å skrive en unntatt blokkering med unntaksnavnet på ZerodivisionError. Hva dette gjør er å fange ZerodivisionError eller med andre ord divisjon med null feil og skrive ut feilen. Så hva får vi? En uttalelse som sier at du rett og slett ikke kan dele med null. Men poenget er at programmet vårt ikke krasjet! Det påpekte i stedet feilen.

Eksempel nr. 3

hoved-.py
prøve:
fil = "Fil.tekst"
f = Åpne (fil, 'r')
trykk (f.lese())
Bortsett fra ZerodIVisionError som feil:
trykk (feil)
unntatt SyntaxError som Serror:
Print (Serror)
Bortsett fra FilenotFoundError som Ferror:
Print (Ferror)

Produksjon:

[Errno 2] Ingen slik fil eller katalog: 'Fil.tekst'

Prosessen ferdig med exit code 0

Poenget med dette eksemplet er enkelt - du kan skrive ut så mange unntak du vil. Hvis du tror det kan være en FilenotFoundError, legger du den til på listen over feil. Dette vil bety at når Python prøver å utføre prøveblokken, finner den ikke filen, så den går ut av Try -setningen og søker gjennom unntatt utsagnene for å se om noen av dem samsvarer med feilen som er hevet. Siden den siste stemmer overens, vil den skrive ut ferror eller filenotfoundererror.

Eksempel 4

I dette tilfellet skal vi se på et eksempel som tar dette formatet:

prøve:
Kode sett 1
Kodesett 2
unntatt unntaksnavn1:
Kodesett 3
unntatt unntaksnavn2:
Kode sett 4
unntatt unntaksnavn3:
Kode sett 5 hoved.py
prøve:
fil = "Fil.tekst"
f = Åpne (fil, 'r')
trykk (f.lese())
y = (2/0)
trykk (y)
Bortsett fra ZerodIVisionError som feil:
trykk (feil)
unntatt SyntaxError som Serror:
Print (Serror)
Bortsett fra FilenotFoundError som Ferror:
Print (Ferror)

Produksjon:

[Errno 2] Ingen slik fil eller katalog: 'Fil.tekst'

Prosessen ferdig med exit code 0

I dette spesielle eksemplet har vi to feil - en FilenotFoundError og en ZerodivisionError. Men legg merke til hvordan den første feilen er filenotfoundererror. Så hva gjør Python? Den begynner å lese koden, prøveuttalelsen, og møter filenotfoundererror, så den går ut av prøveuttalelsen og begynner å skanne gjennom de forskjellige unntatt utsagn, og den finner filenotfounderror bortsett fra uttalelse og utfører derved koden i den. Her er den andre feilen utelatt, og vi får ikke en null.

Eksempel 5

hoved-.py
prøve:
x = '9'
Hvis x> 6:
trykk (x/6)
Bortsett fra ZerodIVisionError som feil:
trykk (feil)
unntatt:
Print ("Noe annen feil")

Produksjon:

Noe annen feil

Prosessen ferdig med exit code 0

Så i dette eksemplet var det en typeerror fordi du ikke kan bruke> mellom en streng og et heltall. Så forsøksblokken blir forsøkt, og når den står overfor typefeilen, går den rett til den "generelle" unntatt leddet og utfører det. Med andre ord, hvis du vil fange feil og du ikke kjenner navnene deres, kan du legge igjen unntaksnavnet.

Poenget med dette eksemplet er at du kan bruke unntatt uttalelse uten å navngi en feil, og det skal i teorien fange enhver feil kastet, men det anbefales ikke! Med andre ord, å bare bruke, bortsett fra uten unntaksnavn, anbefales egentlig ikke.

Konklusjon

Try-bortfallsuttalelsen er en velsignelse for alle programmerere som bruker Python. Try-bortfallsuttalelsen består av to eller flere blokker. Den første blokken er alltid Try -uttalelsesblokken som er fylt med kode. Deretter kan du legge til en eller flere unntatt blokker for å fange veldig spesifikke feil. Vanligvis må du også tilordne et navn til unntatt uttalelse (eks: unntatt ZerodivisionError); Imidlertid, hvis du virkelig ikke vet hva slags feil du vil møte, kan du la det være tomt (eks: unntatt). Uansett vil det beste av alle programmerere vite å ikke gjøre feil og har derfor en tendens til å bruke færre unntatt blokker, men etter hver deres smak. Så bruk prøve-bortsett fra uttalelsen med omhu. Ikke glem at programmering innebærer ferdighet.

Glad koding!