10. Python Programming Course : Error Handling and Except

 

10장. 오류 처리 및 예외 핸들링 (Error Handling and Exceptions)

파이썬에서 발생하는 다양한 오류를 이해하고, 이를 안전하게 처리하여 프로그램의 안정성을 확보하는 방법을 학습합니다.

10.1 주요 Python 오류

  • SyntaxError: 문법 오류(예: 콜론 누락)

  • NameError: 선언되지 않은 변수·함수 참조

  • TypeError: 연산이나 함수 호출 시 타입 불일치

  • ValueError: 타입은 맞지만 부적절한 값

  • IndexError / KeyError: 시퀀스·딕셔너리 인덱스 또는 키 없음

실습 예제

# SyntaxError 예제 (콜론 누락)
# if True
#     print("Error")

# NameError 예제
# print(undefined_variable)

# TypeError 예제
print("hello" + 5)  # 문자열과 정수의 덧셈 오류

10.2 예외 처리 with try-except

try:
    x = int(input("숫자를 입력하세요: "))
    print(10 / x)
except ValueError:
    print("유효한 정수를 입력해야 합니다.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except Exception as e:
    print("알 수 없는 오류 발생:", e)
else:
    print("예외 없이 정상 실행되었습니다.")
finally:
    print("프로그램 종료")

실습 과제

  • 사용자로부터 인덱스를 입력받아 리스트 요소를 출력하는 코드를 작성하고, IndexError를 처리하세요.

10.3 예외 발생 (Raising Exceptions)

def set_age(age):
    if age < 0:
        raise ValueError("나이는 0 이상이어야 합니다.")
    print(f"나이 설정 완료: {age}")

try:
    set_age(-5)
except ValueError as e:
    print("예외 메시지:", e)

실습 과제

  • 사칙 연산 함수에 잘못된 연산자를 전달할 경우 NotImplementedError를 발생시키고 처리하는 코드를 작성하세요.

10.4 사용자 정의 예외 (Custom Exceptions)

class InvalidTriangleError(Exception):
    """유효하지 않은 삼각형일 때 발생하는 예외"""
    pass

def triangle_area(a, b, c):
    # 삼각형 성립 조건: 각 두 변의 합 > 나머지 변
    if a + b <= c or a + c <= b or b + c <= a:
        raise InvalidTriangleError("유효한 삼각형이 아닙니다.")
    s = (a + b + c) / 2
    return (s * (s - a) * (s - b) * (s - c)) ** 0.5

try:
    print(triangle_area(1, 2, 3))
except InvalidTriangleError as e:
    print("예외 발생:", e)

실습 과제

  • 은행 계좌 이체 기능에서 잔액 부족 시 InsufficientFundsError라는 사용자 정의 예외를 발생시키고 테스트하세요.


강의 요약: 예외 처리 구조(try-except-else-finally), 예외 발생(raise), 사용자 정의 예외 활용법을 통해 안전하고 견고한 파이썬 코드를 작성할 수 있습니다.

댓글

이 블로그의 인기 게시물

Python 올인원 강좌: 기초부터 실전 프로젝트까지 완벽 정리!

7. Python Programming Course : Working with Files

4. Python Programming Course : Data Structures