Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau
Foutafhandeling
Foutafhandeling
Doel
Pak de benodigdheden in dozen en vang eventuele fouten op die kunnen optreden door Exceptions te gebruiken.
Er zijn verschillende noodvoorzieningen die ingepakt moeten worden in kits en opgeslagen in kratten voor later gebruik. Dit is vrij eenvoudig en kan worden uitgevoerd met de gangbare functies die je hebt geleerd, maar soms verlopen de zaken niet zoals gepland. Tijdens het programmeren is het je misschien opgevallen dat er soms fouten op het scherm verschijnen en dat er rode markeringen in de editor opduiken bij het punt waar het probleem zich voordeed. Je kunt dit voorkomen door de try en except codeblokken op te zetten.
Deze codeblokken worden gebruikt om uitzonderingen in te stellen en fouten op te vangen voordat ze je code stoppen. Hoe het werkt is dat je try gebruikt op een code die problematisch is of vatbaar kan zijn voor fouten, en except gebruikt om de code te vervangen door een andere code als er een fout optreedt, bijvoorbeeld:
#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead
Om te beginnen, verzamel alle materialen in het veld, namelijk: waterblikken, "thread" en drie gekleurde dekens: "blue blanket", "red blanket", "green blanket". Begin door naar de bovenkant van de kaart te lopen en de drie dekens te pakken, loop naar het lichte X-teken en gebruik de collect() functie om "thread" uit de container te halen. Ga vervolgens naar de onderkant van de kaart en verzamel alle waterblikken.
Zodra alles is verzameld, begeef je je naar het donkere X-teken boven het blauwe tapijt om de verzamelde materialen te plaatsen. Voeg eerst het water en de draad toe aan variabelen met respectievelijk 2 en 3 eenheden, zoals dit: water_can = 2 en thread = 3. Stel vervolgens de kits samen als variabelen door de eerder aangemaakte variabelen op te tellen met de gekleurde dekens in het volgende formaat:
blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage
Zodra de kits zijn samengesteld in de blue_kit, red_kit en green_kit variabelen, is het tijd om ze in de kratten van de overeenkomstige kleur te plaatsen. Maar je hebt wellicht gemerkt dat de code een foutmelding geeft. Maar waarom? Alles lijkt in orde en de instructies zijn gevolgd. Soms, hoewel intuïtief, werken dingen niet zoals we willen; in dit geval kun je een getal niet optellen bij een string in een variabele.
Dus hoe lossen we dit op? Door de try / except codeblokken te gebruiken om de fout op te vangen en te vervangen door een geschikt alternatief. Pas deze uitzonderingen toe op elk van de drie (3) variabelen, die in het geval van een fout de code vervangen door een numerieke waarde in plaats van een specifieke string.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Hoewel we in dit geval op de hoogte zijn van de fout, kunnen de waarden in de variabelen in sommige situaties minder eenduidig zijn of kunnen ze variëren afhankelijk van bepaalde omstandigheden, waardoor dit een handig hulpmiddel is voor het opsporen van fouten of het opvangen van runtime fouten.
Maak het level af door naar de donkere X-tekens over de gekleurde tapijten te lopen, met de kratten voor je, en gebruik de place() functie om de kitvariabelen van de overeenkomstige kleur op de juiste kratten te plaatsen.