오류 소개

개발자를 위한 Python 중급

Jasmin Ludolf

Senior Data Science Content Developer

오류란?

  • 규칙을 위반하는 코드
  • 오류 = 예외
  • 프로그램이 종료됨

일부 Python 예외의 계층 구조

1 https://docs.python.org/3/library/exceptions.html#exception-hierarchy
개발자를 위한 Python 중급

TypeError

  • 호환되지 않는 데이터 유형
"Hello" + 5

문자열과 정수를 결합할 수 없음을 보여주는 TypeError 출력

개발자를 위한 Python 중급

ValueError

float("Hello")

문자열 'Hello'를 float으로 변환할 수 없음을 나타내는 ValueError 출력

  • 값이 허용 가능한 범위에 있지 않음
float("2")

오류 없이 결과 2.0을 보여주는 출력

개발자를 위한 Python 중급

트레이스백

트레이스백 메시지

개발자를 위한 Python 중급

트레이스백

오류 유형을 강조 표시한 트레이스백 메시지

개발자를 위한 Python 중급

트레이스백

오류를 유발한 코드를 강조 표시한 트레이스백 메시지

개발자를 위한 Python 중급

패키지의 코드

  • 패키지에는 다른 사람의 코드 포함. 예: 사용자 정의 함수
  • 소스 코드라고 불림
  • pip install <package>: 소스 코드를 로컬 환경으로 다운로드
  • pandas의 pd.read_csv() 함수: 해당 사용자 정의 함수를 대상으로 작성한 코드를 내부적으로 실행
개발자를 위한 Python 중급

패키지의 트레이스백

# Import pandas package
import pandas as pd

# Create pandas DataFrame                 
products = pd.DataFrame({"ID": "ABC1",
                         "price": 29.99})

# Try to access the non-existent "tag" column
products["tag"]
개발자를 위한 Python 중급

패키지의 트레이스백

존재하지 않는 열에서 pandas DataFrame을 부분집합하려다 발생한 트레이스백

개발자를 위한 Python 중급

패키지의 트레이스백

실행 시 오류를 발생시킨 파일과 KeyError 오류 유형을 보여주는 트레이스백

개발자를 위한 Python 중급

패키지의 트레이스백

3803행이 강조 표시된 트레이스백

개발자를 위한 Python 중급

패키지의 트레이스백

base.py가 강조 표시된 트레이스백

개발자를 위한 Python 중급

패키지의 트레이스백

KeyError가 강조 표시된 트레이스백

개발자를 위한 Python 중급

패키지의 트레이스백

오류를 발생시킨 코드의 해당 줄을 보여주는 트레이스백

개발자를 위한 Python 중급

패키지의 트레이스백

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

개발자를 위한 Python 중급

패키지의 트레이스백

raise가 강조 표시된 트레이스백

개발자를 위한 Python 중급

연습해 봅시다!

개발자를 위한 Python 중급

Preparing Video For Download...