Inhoudsopgave:
- 1Open een Python-bestandsvenster.
- 2Typ de volgende code in het venster - druk na elke regel op Enter:
- Je ziet een Python Shell-venster open. De toepassing vraagt de gebruiker om een geheel getal in te voeren.
- De toepassing geeft een foutmelding weer en vraagt of u het opnieuw wilt proberen.
- De toepassing vraagt u om opnieuw een geheel getal in te voeren.
- De toepassing geeft opnieuw het foutbericht weer en vraagt of u het opnieuw wilt proberen.
- De toepassing is beëindigd. Merk op dat het bericht dat is van de innerlijke uitzondering. De toepassing krijgt nooit de buitenste uitzondering, omdat de interne uitzonderingshandler generieke uitzonderingsafhandeling biedt.
- Je ziet een Python Shell-venster open. De toepassing vraagt de gebruiker om een geheel getal in te voeren.
- De toepassing is beëindigd. Merk op dat het bericht dat is van de buitenste uitzondering. In de vorige stappen beëindigt de gebruiker de applicatie door op een interrupt-toets te drukken. De toepassing gebruikt echter twee verschillende uitzonderingsafhandelingseenheden om het probleem aan te pakken.
Video: Python Web Apps with Flask by Ezra Zigmond 2024
Soms moet u één uitzonderingsafhandelingsroutine binnen een andere plaatsen in een proces genaamd nesten. Wanneer u uitzonderingsafhandelingsroutines nest, probeert Python eerst een uitzonderingshandler in het geneste niveau te vinden en vervolgens naar de buitenste lagen te gaan. U kunt uitzonderingen voor het verwerken van uitzonderingen zo diep nestelen als nodig is om uw code veilig te maken.
Een van de meest voorkomende redenen voor het gebruik van een dubbele laag code voor het afhandelen van uitzonderingen, is wanneer u invoer van een gebruiker wilt ontvangen en de invoercode in een lus moet plaatsen om ervoor te zorgen dat u de vereiste informatie daadwerkelijk krijgt. De volgende stappen demonstreren hoe dit soort code zou kunnen werken.
1Open een Python-bestandsvenster.
Je ziet een editor waarin je de voorbeeldcode kunt typen.
2Typ de volgende code in het venster - druk na elke regel op Enter:
TryAgain = True, terwijl TryAgain: try: Value = int (input ("Type een geheel getal.")) Behalve ValueError: print ("You moet een heel getal typen! ") try: DoOver = input (" Probeer opnieuw (j / n)? ") behalve: print (" OK, tot de volgende keer! ") TryAgain = False else: if (str. bovenste (DoOver) == "N"): TryAgain = False behalve KeyboardInterrupt: print ("U drukte op Ctrl + C!") Print ("Tot de volgende keer!") TryAgain = Valse anders: print (Waarde) TryAgain = Fout > De code begint met het creëren van een invoerlus. Het gebruik van loops voor dit soort doeleinden is eigenlijk vrij gebruikelijk in applicaties, omdat je niet wilt dat de applicatie eindigt elke keer dat er een invoerfout wordt gemaakt. Dit is een vereenvoudigde lus en normaal maakt u een afzonderlijke functie om de code vast te houden.
Een uitzondering ValueError kan optreden wanneer de gebruiker een fout maakt. Omdat u niet weet waarom de gebruiker de verkeerde waarde heeft ingevoerd, moet u vragen of de gebruiker het opnieuw wil proberen. Natuurlijk kan het verkrijgen van meer input van de gebruiker een andere uitzondering genereren. De innerlijke poging … behalve dat codeblok deze secundaire invoer verwerkt.
3Kies run → Run-module.
Je ziet een Python Shell-venster open. De toepassing vraagt de gebruiker om een geheel getal in te voeren.
De toepassing geeft een foutmelding weer en vraagt of u het opnieuw wilt proberen.
5Typ Y en druk op Enter.
De toepassing vraagt u om opnieuw een geheel getal in te voeren.
6Type 5. 5 en druk op Enter.
De toepassing geeft opnieuw het foutbericht weer en vraagt of u het opnieuw wilt proberen.
De toepassing is beëindigd. Merk op dat het bericht dat is van de innerlijke uitzondering. De toepassing krijgt nooit de buitenste uitzondering, omdat de interne uitzonderingshandler generieke uitzonderingsafhandeling biedt.
8Keuze kiezen → Module uitvoeren.
Je ziet een Python Shell-venster open. De toepassing vraagt de gebruiker om een geheel getal in te voeren.
9Druk op Ctrl + C, Cmd + C of een andere toetscombinatie om de toepassing te onderbreken.