Курс по усъвършенствано разработване с Python
Глава
>
Ниво
Обработка на изключения
Обработка на изключения
Цел
Опаковайте консумативите в кутии и улавяйте всички грешки, които може да възникнат, използвайки изключения.
Съществуват няколко аварийни консумативи, които трябва да бъдат опаковани в комплекти и съхранявани в кутии за по-късна употреба. Изпълнението на това е доста просто и може да се осъществи с помощта на обичайните функции, които сте научили, но понякога нещата не вървят по план. Докато програмирате, може би сте забелязали, че понякога на екрана се появяват грешки и в редактора се появяват червени марки на мястото, където е възникнал проблемът. Можете да смекчите това чрез настройване на блоковете от код try и except.
Тези блокове от код се използват за настройване на изключения и улавяне на грешки, преди те да спрат изпълнението на вашия код. Работата им е следната: използвате try за код, който е проблематичен или може да предизвика грешка, и използвате except, за да замените този код с друг в случай на грешка, например:
#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
За начало, вземете всички материали в полето, а именно: канистри с вода, "thread" и три цветни одеяла: "blue blanket", "red blanket", "green blanket". Започнете, като отидете до върха на картата и вземете трите одеяла, отидете до светлия X знак и използвайте функцията collect() за да вземете "thread" от контейнера. След това се придвижете до дъното на картата и вземете всички канистри с вода.
След като всичко бъде събрано, насочете се към тъмния X знак над синия килим, за да започнете да поставяте материалите, които току-що събрахте. Първо добавете водата и нишката в променливи със съответно 2 и 3 единици, както следва: water_can = 2 и thread = 3. След това оформете комплектите като променливи, като комбинирате предварително направените променливи с цветните одеяла в следния формат:
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
След като комплектите са съставени в променливите blue_kit, red_kit и green_kit, е време да ги поставите в кутиите със съответния цвят, обаче може би сте забелязали, че кодът генерира грешка. Но защо? Всичко е както трябва и инструкциите са спазени. Понякога, макар и интуитивно, нещата няма да работят по начина, по който искаме; в този случай не можете да съберете число с низ в променлива.
Така как ще оправим това? Чрез използването на блоковете от код try / except за улавяне на грешката и преобразуването й в подходящ заместител. За всяка от трите (3) променливи, приложете тези изключения, които в случай на грешка заменят кода с числова стойност вместо конкретен низ.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Докато в този случай сме наясно с грешката, има ситуации, в които стойностите в променливите може да не са толкова ясни или да се различават в зависимост от определени условия, което прави този инструмент полезен за отстраняване на грешки или улавяне на грешки по време на изпълнение.
Завършете нивото, като отидете до тъмните X знаци над цветните килими, обърнете се към кутиите и използвайте функцията place() за да поставите комплектите със съответния цвят в правилните кутии.