Avansert Pythonutviklingskurs
Kapittel
>
Nivå
Unntakshåndtering
Unntakshåndtering
Mål
Pakk forsyninger i bokser og fang eventuelle feil som kan oppstå ved å bruke Exceptions.
Det finnes flere nødforsyninger som må pakkes inn i sett og lagres i kasser for senere bruk. Dette er ganske enkelt og kan gjøres med vanlige funksjoner du har lært, men noen ganger går ikke alt som planlagt. Mens du programmerer har du kanskje lagt merke til at feil noen ganger dukker opp på skjermen, og røde markeringer vises i editoren der problemet oppstod. Du kan håndtere dette ved å sette opp try- og except-kodeblokker.
Disse kodeblokkene brukes til å sette opp unntak og fange feil før de stopper koden din. Slik fungerer det: du bruker try på en kode som er problematisk eller kan være utsatt for feil, og bruker except for å bytte ut koden med en annen kode dersom en feil oppstå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 å starte, hent alle materialene i området, de er: vannbokser, "thread" og tre fargede tepper: "blue blanket", "red blanket", "green blanket". Begynn med å gå til toppen av kartet og hent de tre teppene, gå deretter til det lyse X-merket og bruk collect()-funksjonen for å hente "thread" fra beholderen. Fortsett deretter med å gå til bunnen av kartet og hente alle vannboksene.
Når alt er samlet, gå til det mørke X-merket over det blå teppet for å begynne å plassere materialene du nettopp har samlet. Legg først vann og tråd inn i variabler med henholdsvis 2 og 3 enheter, slik: water_can = 2 og thread = 3. Deretter setter du opp settene som variabler ved å legge sammen de tidligere definerte variablene med de fargede teppene 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 settene er satt sammen i variablene blue_kit, red_kit og green_kit, er det på tide å plassere dem i kassene med tilsvarende farge. Du har imidlertid kanskje lagt merke til at koden kaster en feil. Men hvorfor? Alt er som det skal være og instruksjonene ble fulgt. Noen ganger, selv om det virker intuitivt, fungerer ikke ting slik vi ønsker, og i dette tilfellet kan du ikke summere et tall med en streng i en variabel.
Så hvordan skal vi løse dette? Ved å bruke try/except-kodeblokker for å fange feilen og erstatte den med en egnet verdi. For hver av de tre (3) variablene, bruk disse unntakene, som i tilfelle en feil bytter ut koden med en numerisk verdi i stedet for en spesifikk streng.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Selv om vi i dette tilfellet er klar over feilen, finnes det situasjoner der verdiene i variablene kanskje ikke er like enkle, eller kan være forskjellige avhengig av visse betingelser, noe som gjør dette til et nyttig verktøy for feilsøking eller for å fange opp kjøretidsfeil.
Fullfør nivået ved å gå til de mørke X-markene over de fargede teppene, møte kassene og bruke place()-funksjonen for å plassere satsvariablene med tilsvarende farge på de riktige kassene.