Python - Advanced Exception Handling

Innholdsfortegnelse
Når et unntak er hevet, er det vår plikt å være i stand til å håndtere det. På denne måten vil programmet vårt kunne utføre en handling, heve en melding, be om korrigering av parameteren som er angitt av brukeren, kort sagt mange muligheter .
Fange unntak
Som vi hadde nevnt før, er det viktige med når vi ser et unntak å kunne fange det på denne måten kan vi bestemme hva programmet skal gjøre når denne situasjonen oppstår, for å gjøre dette vil vi bruke kommandoene prøv / unntatt. For å demonstrere det ovennevnte kommer vi til å analysere et veldig enkelt divisjonsprogram, ettersom vi vet at vi ikke kan dele et tall med 0, så dette vil medføre et unntak.
La oss begynne å bygge koden vår, husk at vi kan gjøre dette i hvilken som helst tekstredigerer, og vi må lagre filen med en .py -utvidelse slik at vi kan utføre den på kommandolinjen eller konsollen.
 x = input ('Enter the first number:') y = input ('Enter the second number:') print x / y [ / size] [size = 4]

Dette vil fungere ganske skikkelig til brukeren angir verdien 0 som det andre argumentet, dette vil medføre et unntak som vi kan se i følgende bilde av kjøringen av dette programmet:

Vi kan forhindre dette ved å bruke prøv / unntatt som vi hadde sett i begynnelsen av denne delen, la oss se vår korrigerte kode:
 prøv: x = input ('Skriv inn det første tallet:') y = input ('Skriv inn det andre tallet:') skriv ut x / y bortsett fra ZeroDivisionerror: print "Det andre tallet kan ikke være null!" 

Denne måten å håndtere denne saken på er ganske ren, til tross for alt kan det også sies det med en enkel hvis som vil forutsette at verdien av Y Det ville ikke være 0 ville være en tilstrekkelig løsning, men hvis vi la til flere divisjoner i programmet vårt, ville vi trenge flere betingelser, i stedet på denne måten trenger vi bare en enkelt behandler av det mulige unntaket som genereres.
Fang mer enn ett unntak
Fortsett med eksemplet på divisjonen vi har jobbet med, la oss se hva som ville skje hvis vi i stedet for en 0 skriver inn noe annet:

På bildet kan vi se at en tekst ble skrevet inn og vår behandler som bare forventet et unntak av typen ZeroDivisionerror kunne ikke utføre riktig håndtering ettersom den ikke visste hva han skulle gjøre med det nye genererte unntaket.
For å fange det nye unntaket vil vi ganske enkelt legge til en ny blokk unntatt for å kunne håndtere unntaket TypeError som genereres ved å dele et tall med en tekst.
La oss se vår korrigerte kode:
 prøv: x = input ('Skriv inn det første tallet:') y = input ('Skriv inn det andre tallet:') skriv ut x / y bortsett fra ZeroDivisionerror: print "Det andre tallet kan ikke være null!" unntatt TypeError: print "Det var ikke et tall, var det?" 

Hvis vi hadde valgt å bruke betingelser hvis, denne oppgaven ville ha tatt oss mange flere kodelinjer, bortsett fra å gjøre programmet vårt mindre lesbart.
Fanger to unntak i samme blokk
Hvis det vi trenger er å fange flere unntak i en enkelt blokk unntatt det vi må gjøre er å legge dem til i erklæringen inne i en parentes, la oss se koden for å forstå den bedre:
[ / størrelse] prøve: x = input ('Skriv inn det første tallet:') y = input ('Skriv inn det andre tallet:') skriv ut x / y bortsett fra ZeroDivisionerror: print "Det andre tallet kan ikke være null!" unntatt TypeError: [/ size] [size = 4] print "Det var ikke et tall, var det?" 

Som vi kunne se, uansett hva som skjer, vil applikasjonen fortsette å sende oss den samme meldingen enten det er angitt en 0 eller noe annet enn et tall.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave