오류 처리

개발자를 위한 Python 중급

Jasmin Ludolf

Senior Data Science Content Developer

pandas 트레이스백

오류를 의도적으로 반환하는 코드를 보여주는 트레이스백

  • except, raise

  • 오류가 어떻게 발생할 수 있을지 예상

개발자를 위한 Python 중급

디자인 사고

  • 사람들이 사용자 지정 함수를 어떻게 사용할까?
  • 다양한 접근 방식 시도
  • 발생할 수 있는 오류 찾기

도시의 다양한 통근 유형

개발자를 위한 Python 중급

사용자 정의 함수의 오류 처리

def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)
    return average_value
개발자를 위한 Python 중급

어디서 잘못될 수 있을까?

  • average()는 목록 또는 집합 형태의 데이터 필요
  • 인수를 둘 이상 제공 🛑
  • 잘못된 데이터 유형 사용 🛑
개발자를 위한 Python 중급

어디서 잘못될 수 있을까?

sales_dict = {"cust_id": ["JL93", "MT12", "IY64"],
              "order_value": [43.21, 68.70, 82.19]}
print(average(sales_dict))

TypeError가 있는 트레이스백

개발자를 위한 Python 중급

이전 오류 처리

  • 제어 흐름 if, elif, else
  • 독스트링
개발자를 위한 Python 중급

try-except

def average(values):

try:
# Code that might cause an error average_value = sum(values) / len(values) return average_value
except:
# Code to run if an error occurs print("average() accepts a list or set. Please provide a correct data type.")
개발자를 위한 Python 중급

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
개발자를 위한 Python 중급

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise
개발자를 위한 Python 중급

TypeError 발생시키기

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise TypeError("average() accepts a list or set, please provide a correct data type.")
개발자를 위한 Python 중급

TypeError 출력 발생시키기

print(average(sales_dict))

올바른 데이터 유형을 제공하라는 사용자 지정 메시지를 보여주는 TypeError 출력

개발자를 위한 Python 중급

try-except와 raise의 비교

try-except

  • 오류 발생 방지
  • 다음 코드를 계속 실행함

raise

  • 오류 발생
  • 다음 코드 실행 중단
개발자를 위한 Python 중급

연습해 봅시다!

개발자를 위한 Python 중급

Preparing Video For Download...