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), 사용자 정의 예외 활용법을 통해 안전하고 견고한 파이썬 코드를 작성할 수 있습니다.
댓글
댓글 쓰기