Menu
Coddy logo textTech

여러 예외 처리하기

Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 65번째.

Python에서, 우리는 별도의 except 블록에서 다양한 유형의 예외를 처리할 수 있습니다. 이를 통해 발생하는 특정 오류에 따라 다르게 대응할 수 있습니다.

기본적인 try-except 구조로 시작해 보겠습니다:

try:
    # 예외가 발생할 수 있는 코드
    pass
except Exception as e:
    # 모든 예외 처리
    pass

여러 개의 예외를 처리하려면, 구체적인 except 블록을 추가하세요:

try:
    number = int(input("Enter a number: "))
    result = 10 / number
    print(result)
except ValueError:
    print("That's not a valid number!")
except ZeroDivisionError:
    print("Cannot divide by zero!")

하나의 except 블록에서 여러 예외 유형을 처리할 수도 있습니다:

try:
    # 일부 코드
    pass
except (ValueError, TypeError):
    print("Invalid input type!")

except 블록의 순서는 중요합니다 - 항상 더 구체적인 예외를 더 일반적인 예외보다 먼저 배치하세요.

challenge icon

챌린지

쉬움

다음과 같은 기능을 수행하는 process_data 함수를 작성하세요:

  1. 잠재적인 데이터를 나타내는 문자열 입력을 받습니다.
  2. 입력을 정수로 변환한 후, 100을 해당 정수로 나눈 값을 계산합니다.
  3. 결과를 반환합니다.
  4. 최소 3가지의 가능한 예외를 처리합니다: 
    • 입력을 정수로 변환할 수 없는 경우 ValueError ("Input must be a number!"를 출력)
    • 입력이 0인 경우 ZeroDivisionError ("Cannot divide by zero!"를 출력)
    • 일반적인 처리기를 사용하여 그 외의 모든 예외를 처리 ("An unexpected error occurred!"를 출력)

치트 시트

여러 개의 except 블록을 사용하여 다양한 유형의 예외를 처리합니다:

try:
    number = int(input("Enter a number: "))
    result = 10 / number
    print(result)
except ValueError:
    print("That's not a valid number!")
except ZeroDivisionError:
    print("Cannot divide by zero!")

단일 except 블록에서 여러 예외 유형을 포착합니다:

try:
    # 일부 코드
    pass
except (ValueError, TypeError):
    print("Invalid input type!")

except 블록의 순서에서 항상 더 구체적인 예외를 더 일반적인 예외보다 먼저 배치하세요.

직접 해보기

def process_data(input_string):
    try:
        # 입력 문자열을 정수로 변환 시도
        
        # 100을 입력값으로 나눈 결과 계산
        
        # 결과 반환
        
    except ValueError:
        # 입력을 정수로 변환할 수 없는 경우 처리
        
    except ZeroDivisionError:
        # 입력값이 0인 경우 처리
        
    except:
        # 기타 예기치 않은 모든 예외 처리
        
    return None
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨