Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Undtagelseshåndtering
Undtagelseshåndtering
Mål
Pak forsyningerne i kasser og fang eventuelle fejl, der måtte opstå ved at bruge Exceptions.
Der er flere nød-forsyninger, der skal pakkes i kits og opbevares i kasser til senere brug. Dette er ret ligetil og kan klares ved hjælp af de almindelige funktioner, du har lært, men nogle gange går tingene ikke som planlagt. Mens du programmerer, har du måske bemærket, at fejl pludselig dukker op på skærmen, og røde markeringer vises i editoren, hvor problemet opstod. Du kan imødekomme dette ved at sætte try og except kodeblokke op.
Disse kodeblokke bruges til at sætte exceptions op og fange fejl, før de stopper din kode. Sådan fungerer det: Du bruger try på en kode, der er problematisk eller potentielt fejlagtig, og du bruger except til at skifte koden ud med en anden, hvis en fejl opstår, for eksempel:
#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
For at komme i gang, tag alle materialerne i området, disse er: vanddåser, "thread" og tre farvede tæpper: "blue blanket", "red blanket", "green blanket". Begynd med at gå til toppen af kortet og hent de tre tæpper, gå til det lette X-mærke og brug funktionen collect() til at skaffe "thread" fra beholderen. Fortsæt derefter ved at bevæge dig til bunden af kortet og samle alle vanddåserne.
Når alt er samlet, skal du bevæge dig til det mørke X-mærke over det blå tæppe for at begynde at placere de materialer, du lige har samlet. Tilføj først vandet og tråden til variabler med henholdsvis 2 og 3 enheder, som dette: water_can = 2 og thread = 3. Derefter sætter du kits op som variabler ved at lægge de tidligere oprettede variabler sammen med de farvede tæpper i følgende 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 kits'erne er samlet i variablerne blue_kit, red_kit og green_kit, er det tid til at placere dem i kasserne med den tilsvarende farve. Men du har måske bemærket, at koden kaster en fejl. Men hvorfor? Alt er, som det skal være, og instruktionerne er fulgt. Nogle gange, selvom det virker intuitivt, fungerer tingene ikke, som vi ønsker; i dette tilfælde kan du ikke lægge et tal sammen med en streng i en variabel.
Så hvordan afhjælper vi dette? Ved at bruge try/except kodeblokke til at fange fejlen og konvertere den til en passende erstatning. For hver af de tre (3) variabler skal du anvende disse undtagelser, som i tilfælde af en fejl erstatter koden med en numerisk værdi i stedet for en specifik streng.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Selvom vi i dette tilfælde er opmærksomme på fejlen, er der situationer, hvor værdierne i variablerne måske ikke er så ligetil eller kan variere afhængigt af visse betingelser, hvilket gør dette til et nyttigt værktøj til fejlfinding eller til at fange runtime-fejl.
Fuldfør niveauet ved at gå til de mørke X-mærker over de farvede tæpper, vend dig mod kasserne og brug funktionen place() til at sætte kitvariablerne med den tilsvarende farve på de rigtige kasser.