Python - Avanceret undtagelseshåndtering

Indholdsfortegnelse
Når en undtagelse er rejst, er det vores pligt at være i stand til at håndtere det, på denne måde vil vores program være i stand til at udføre en handling, rejse en besked, anmode om korrektion af den parameter, der er indtastet af brugeren, kort sagt mange muligheder .
Fange undtagelser
Som vi havde nævnt før, er det vigtige ved, når vi ser en undtagelse, at kunne fange det på denne måde, vi kan beslutte, hvad programmet skal gøre, når denne situation opstår, for at gøre dette vil vi bruge kommandoerne prøv / undtagen. For at demonstrere ovenstående vil vi analysere et meget enkelt divisionsprogram, da vi ved, at vi ikke kan dividere et tal med 0, så dette vil rejse en undtagelse.
Lad os begynde at opbygge vores kode, husk at vi kan gøre dette i enhver tekstredigerer, og vi skal gemme filen med en .py -udvidelse, så vi kan udføre den på vores kommandolinje eller konsol.
 x = input ('Indtast det første tal:') y = input ('Indtast det andet nummer:') udskriv x / y [ / størrelse] [størrelse = 4]

Dette vil fungere ganske korrekt, indtil brugeren indtaster værdien 0 som det andet argument, dette vil rejse en undtagelse, som vi kan se i følgende billede af kørslen af ​​dette program:

Vi kan forhindre dette ved at bruge prøv / undtagen som vi havde set i begyndelsen af ​​dette afsnit, lad os se vores korrigerede kode:
 prøv: x = input ('Indtast det første tal:') y = input ('Indtast det andet nummer:') udskriv x / y undtagen ZeroDivisionerror: print "Det andet tal må ikke være nul!" 

Denne måde at håndtere denne sag på er ganske ren, på trods af alt kan man også sige det med en simpel hvis det ville betinge, at værdien af Y Det ville ikke være 0 ville være en tilstrækkelig løsning, men hvis vi tilføjede flere divisioner til vores program, ville vi have brug for flere betingelser, i stedet på denne måde har vi kun brug for en enkelt håndterer af den mulige undtagelse, der genereres.
Fang mere end én undtagelse
Fortsæt med eksemplet på divisionen, som vi har arbejdet med, lad os se, hvad der ville ske, hvis vi i stedet for et 0 indtaster noget andet:

På billedet kan vi se, at der blev indtastet en tekst og vores handler, der kun forventede en undtagelse fra typen ZeroDivisionerror kunne ikke udføre korrekt håndtering, da den ikke vidste, hvad de skulle gøre med den nye genererede undtagelse.
For at fange den nye undtagelse tilføjer vi ganske enkelt en ny blok undtagen at kunne klare undtagelsen Type Fejl der genereres ved at dividere et tal med en tekst.
Lad os se vores rettede kode:
 prøv: x = input ('Indtast det første tal:') y = input ('Indtast det andet nummer:') udskriv x / y undtagen ZeroDivisionerror: print "Det andet tal må ikke være nul!" undtagen TypeError: print "Det var vel ikke et tal?" 

Hvis vi havde valgt at bruge betingelser hvis, ville denne opgave have taget os mange flere kodelinjer, bortset fra at gøre vores program mindre læsbart.
Fanger to undtagelser i samme blok
Hvis det, vi har brug for, er at fange flere undtagelser i en enkelt blok undtagen hvad vi skal gøre er at tilføje dem i erklæringen inde i en parentes, lad os se koden for at forstå den bedre:
[ / størrelse] prøv: x = input ('Indtast det første tal:') y = input ('Indtast det andet nummer:') udskriv x / y undtagen ZeroDivisionerror: print "Det andet tal må ikke være nul!" undtagen TypeError: [/ size] [size = 4] print "Det var ikke et tal, var det?" 

Som vi kunne se, uanset hvad der sker, vil applikationen fortsat sende os den samme besked, uanset om der er indtastet et 0 eller noget andet end et tal.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave