고급 파이썬 개발 과정
챕터
>
레벨
예외 처리
예외 처리
목표
예비 용품들을 상자에 포장하고 Exception을 사용하여 발생할 수 있는 오류를 처리하세요.
나중에 사용할 수 있도록 여러 비상 용품들을 키트에 포장하여 상자에 보관해야 합니다. 이 작업은 비교적 간단하며 지금까지 배운 일반 함수들을 사용하여 수행할 수 있지만, 때때로 계획대로 진행되지 않을 수 있습니다. 프로그래밍을 하다 보면 화면에 오류가 나타나고, 편집기에서 문제가 발생한 위치에 빨간 표시가 뜨는 것을 본 적이 있을 것입니다. 이러한 문제는 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 코드 블록을 사용하여 오류를 잡고 적절한 대체 값으로 변환하는 것입니다. 세 개의 변수 각각에 대해, 오류 발생 시 특정 문자열 대신 숫자 값을 사용하는 방식으로 이러한 예외 처리를 적용하세요.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
이 경우에는 오류를 인지하고 있지만, 변수 내의 값들이 항상 명확하거나 동일하지 않을 수 있는 상황에서는 조건에 따라 달라질 수 있으므로, 이 방법은 문제 해결이나 런타임 오류를 처리하는 데 유용한 도구가 됩니다.
컬러 카펫 위에 있는 어두운 X 표시로 이동한 후, 상자를 향해 해당 색상의 키트 변수를 올바른 상자에 배치하기 위해 place() 함수를 사용하여 레벨을 완료하세요.