Video: Week 5 2024
Eén strategie voor het omgaan met uitzonderingen in Python is het bieden van specifieke uitzonderingsclausules voor alle bekende uitzonderingen en generieke behalve clausules voor het afhandelen van onbekende uitzonderingen. Bekijk de uitzonderingshiërarchie die Python gebruikt. Bij het bekijken van dit diagram is BaseException de belangrijkste uitzondering. De meeste uitzonderingen zijn afgeleid van Exception. Als u wiskundige fouten doorvoert, kunt u de generieke ArithmeticError of een meer specifieke uitzondering ZeroDivisionError gebruiken.
Python evalueert behalve de clausules in de volgorde waarin ze in het broncodebestand verschijnen. De eerste clausule wordt eerst onderzocht, de tweede clausule wordt als tweede onderzocht, enzovoort. De volgende stappen helpen u een voorbeeld te onderzoeken dat aantoont hoe belangrijk het is om de juiste uitzonderingsvolgorde te gebruiken. In dit geval voert u taken uit die resulteren in wiskundige fouten.
-
Open een Python-bestandsvenster.
Je ziet een editor waarin je de voorbeeldcode kunt typen.
-
Typ de volgende code in het venster - druk na elke regel op Enter:
probeer: Value1 = int (input ("Type the first number:")) Value2 = int (input (" Typ het tweede nummer: ")) Output = Waarde1 / Waarde2 behalve ValueError: print (" Je moet een heel getal invoeren! ") Behalve KeyboardInterrupt: print (" Je hebt op Ctrl + C gedrukt! ") Behalve ArithmeticError: print (" An undefined ") behalve ZeroDivisionError: print (" Poging om te delen door nul! ") anders: print (Output)
De code begint met het verkrijgen van twee inputs: Value1 en Value2. De eerste twee uitzonderingsclausules behandelen onverwachte invoer. De tweede twee uitzonderingsclausules verwerken wiskundige uitzonderingen, zoals delen door nul. Als alles goed gaat met de toepassing, wordt de else-clausule uitgevoerd, die het resultaat van de bewerking afdrukt.
-
Kies Uitvoeren → Module uitvoeren.
Je ziet een Python Shell-venster open. De toepassing vraagt u om het eerste nummer in te voeren.
-
Type Hallo en druk op Enter.
Zoals verwacht, toont Python het ValueError-uitzonderingsbericht. Het loont echter altijd om te controleren op mogelijke problemen.
-
Kies Uitvoeren → Module opnieuw uitvoeren.
Je ziet een Python Shell-venster open. De toepassing vraagt u om het eerste nummer in te voeren.
-
Typ 8 en druk op Enter.
De toepassing vraagt u om het tweede nummer in te voeren.
-
Typ 0 en druk op Enter.
U ziet het foutbericht voor de uitzondering ArithmeticError. Wat u eigenlijk zou moeten zien is de ZeroDivisionError-uitzondering omdat deze specifieker is dan de uitzondering ArithmeticError.
-
Keer de volgorde van de twee uitzonderingen om zodat ze er als volgt uitzien:
behalve ZeroDivisionError: print ("Poging om te delen door nul!") Behalve ArithmeticError: print ("Er is een onbestemde wiskundige fout opgetreden.") > Voer stap 5 tot 7 opnieuw uit.
-
Nu zie je het ZeroDivisionError-uitzonderingsbericht omdat de uitzonderingen in de juiste volgorde worden weergegeven.
Voer stap 5 t / m 7 opnieuw uit, maar typ 2 voor het tweede getal in plaats van 0.
-
Deze keer meldt de toepassing uiteindelijk een uitvoerwaarde van 4. 0.
Merk op dat de uitvoer een zwevende- puntwaarde. Divisie resulteert in een drijvende-kommawaarde, tenzij u opgeeft dat u een uitvoer met geheel getal wilt met behulp van de operator voor vloerdeling (//).