Video: Python Web Apps with Flask by Ezra Zigmond 2024
En strategi for å håndtere unntak i Python er å gi spesifikke unntatt klausuler for alle kjente unntak og generiske unntatt klausuler for å håndtere ukjente unntak. Sjekk ut unntakshierarkiet som Python bruker. Når du ser dette diagrammet, er BaseException det øverste unntaket. De fleste unntak er avledet fra Unntak. Når du arbeider gjennom mattefeil, kan du bruke generisk ArithmeticError eller et mer spesifikt ZeroDivisionError-unntak.
Python evaluerer unntatt klausuler i den rekkefølgen de vises i kildekoden filen. Den første klausulen blir undersøkt først, den andre klausulen blir undersøkt andre, og så videre. Følgende trinn hjelper deg med å undersøke et eksempel som viser viktigheten av å bruke riktig unntaksordre. I dette tilfellet utfører du oppgaver som resulterer i mattefeil.
-
Åpne et Python-filvindu.
Du ser en redaktør der du kan skrive eksempelkoden.
-
prøv: Value1 = int (input ("Skriv det første nummeret:")) Value2 = int (input (" Skriv inn det andre nummeret: ")) Output = Verdi1 / Verdi2 bortsett fra ValueError: print (" Du må skrive et helt tall! ") Unntatt KeyboardInterrupt: print (" Du presset Ctrl + C! ") Unntatt ArithmeticError: print (" En udefinert matematikkfeil oppstod. ") unntatt ZeroDivisionError: print (" Forsøk på å dele med null! ") ellers: print (Output)
Koden starter ved å skaffe to innganger: Verdi1 og Verdi2. De to første unntatt klausulene håndterer uventet inngang. De andre to unntatt klausuler håndterer matematiske unntak, for eksempel dividering med null. Hvis alt går bra med programmet, utføres ellers klausulen, som skriver ut resultatet av operasjonen.
-
Du ser et Python Shell-vindu åpent. Søknaden ber deg om å skrive det første nummeret.
Skriv Hei og trykk Enter.
-
Som forventet, viser Python ValueError unntaksmeldingen. Men det lønner seg alltid å sjekke for potensielle problemer.
Velg Kjør → Kjør modul igjen.
-
Du ser et Python Shell-vindu åpent. Søknaden ber deg om å skrive det første nummeret.
Type 8 og trykk Enter.
-
Søknaden ber deg om å skrive inn det andre nummeret.
Skriv 0 og trykk Enter.
-
Du ser feilmeldingen for ArithmeticError unntaket. Hva du egentlig bør se er ZeroDivisionError unntaket fordi det er mer spesifikt enn unntaket ArithmeticError.
Omvendt rekkefølgen av de to unntakene slik at de ser slik ut:
-
unntatt ZeroDivisionError: print ("Forsøk på å dele med null!") Unntatt ArithmeticError: print ("En udefinert mattefeil oppstod.") > Utfør trinn 5 til og med 7 igjen.
Denne gangen ser du ZeroDivisionError unntaksmeldingen fordi unntakene vises i riktig rekkefølge.
-
Utfør trinn 5 til og med 7, men skriv inn 2 for det andre nummeret i stedet for 0.
Denne gangen rapporterer programmet endelig en utgangsverdi på 4 0.
-
Legg merke til at utgangen er en flytende- punktverdien. Divisjon resulterer i en flytende verdi uten at du angir at du vil ha et heltall utdata ved å bruke gulv divisjon operatør (//).