Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå
Undantagshantering
Undantagshantering
Mål
Packa förnödenheter i lådor och fånga eventuella fel som kan uppstå genom att använda Exceptions.
Det finns flera akuta förnödenheter som behöver packas i kit och lagras i trälådor för senare användning. Att göra detta är ganska okomplicerat och kan genomföras med de vanliga funktioner du lärt dig, men ibland går saker inte som planerat. När du programmerar har du kanske märkt att det ibland dyker upp fel på skärmen, och röda markeringar visas i editorn där problemet uppstått. Du kan hantera detta genom att sätta upp kodblocken try och except.
Dessa kodblock används för att definiera undantag och fånga fel innan de stoppar din kod. Så här fungerar det: du använder try på en kod som är problematisk eller kan vara benägen att ge fel och använder except för att byta ut koden mot en annan kod om ett fel uppstår, till exempel:
#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
För att komma igång, samla allt material på fältet, det vill säga: vattenburkar, "thread" och tre färgade filtar: "blue blanket", "red blanket", "green blanket". Börja med att gå till kartans topp och hämta de tre filtarna, gå sedan till den ljusa X-markeringen och använd funktionen collect() för att hämta "thread" från behållaren. Fortsätt sedan med att gå till kartans botten och hämta alla vattenburkar.
När allt är samlat, ta dig till den mörka X-markeringen över den blå mattan för att börja placera de material du just samlat. Lägg först till vatten och thread i variabler med 2 respektive 3 enheter, på följande sätt: water_can = 2 och thread = 3. Ställ sedan in kiten som variabler genom att summera de tidigare skapade variablerna med de färgade filtarna enligt följande format:
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
När kiten har satts ihop i variablerna blue_kit, red_kit, green_kit är det dags att placera dem i trälådorna med motsvarande färg, men du kanske har märkt att koden kastar ett fel. Men varför? Allt är som det ska vara och instruktionerna följdes. Ibland, även om det känns intuitivt, fungerar inte saker och ting som vi vill – i det här fallet kan du inte addera ett tal och en sträng i en variabel.
Så hur ska vi lösa detta? Genom att använda kodblocken try / except för att fånga felet och konvertera det till en lämplig ersättning. För var och en av de tre (3) variablerna, applicera dessa undantag, vilket i händelse av ett fel byter ut koden med ett numeriskt värde istället för en specifik sträng.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Även om vi i det här fallet är medvetna om felet finns det situationer där värdena i variablerna kanske inte är så entydiga eller kan vara olika beroende på vissa förhållanden, vilket gör detta till ett användbart verktyg för felsökning eller för att fånga upp körtidsfel.
Avsluta nivån genom att gå till de mörka X-markeringarna över de färgade mattorna, vända dig mot trälådorna och använda funktionen place() för att placera kitvariablerna med motsvarande färg på rätt trälådor.