반응형
Day 1: 예외의 기본 개념
- 강의 내용:
- 예외의 정의와 필요성
- 예외와 에러의 차이
- 예외 처리가 필요한 이유
- 기본 예외 처리 구조
- try-except 문
- 예외 발생 시 흐름 제어
- 예외의 정의와 필요성
- 실습:
- 기본 예외 처리 예제 작성
# 기본 예외 처리
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
Day 2: 여러 예외 처리
- 강의 내용:
- 여러 예외 처리
- 여러 예외를 한꺼번에 처리
- 개별 예외 처리
- 다양한 예외 클래스
- ValueError, TypeError 등
- 여러 예외 처리
- 실습:
- 여러 예외를 처리하는 예제 작성
# 여러 예외 처리
try:
value = int("abc")
result = 10 / 0
except (ValueError, ZeroDivisionError) as e:
print(f"예외 발생: {e}")
Day 3: else와 finally 절
- 강의 내용:
- else 절
- 예외가 발생하지 않았을 때 실행
- finally 절
- 예외 발생 여부와 관계없이 항상 실행
- else 절
- 실습:
- else와 finally 절을 포함한 예외 처리 예제 작성
# else와 finally 절
try:
result = 10 / 2
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("연산 성공:", result)
finally:
print("예외 처리가 완료되었습니다.")
Day 4: 사용자 정의 예외
- 강의 내용:
- 사용자 정의 예외의 필요성
- 내장 예외 클래스 상속
- 사용자 정의 예외 클래스 작성
- 사용자 정의 예외 사용 예제
- 사용자 정의 예외의 필요성
- 실습:
- 사용자 정의 예외 클래스를 작성하고 사용하는 예제
# 사용자 정의 예외 클래스
class MyCustomError(Exception):
def __init__(self, message):
self.message = message
super().__init__(self.message)
# 사용자 정의 예외 사용 예제
try:
raise MyCustomError("이것은 사용자 정의 예외입니다.")
except MyCustomError as e:
print(f"사용자 정의 예외 발생: {e.message}")
Day 5: 예외 전파와 재발생
- 강의 내용:
- 예외 전파
- 함수 내에서 발생한 예외가 호출자에게 전파되는 과정
- 예외 재발생
- 예외를 처리한 후 다시 발생시키기
- 예외 전파
- 실습:
- 예외 전파와 재발생 예제 작성
# 예외 전파
def divide(x, y):
return x / y
def calculate():
try:
result = divide(10, 0)
except ZeroDivisionError as e:
print(f"예외 처리: {e}")
raise # 예외 재발생
try:
calculate()
except ZeroDivisionError as e:
print(f"최종 예외 처리: {e}")
Day 6: 예외 처리의 모범 사례
- 강의 내용:
- 예외 처리 모범 사례
- 예외 발생 가능성이 있는 코드 최소화
- 구체적인 예외 클래스 사용
- 로그를 사용한 예외 기록
- 예외 처리 모범 사례
- 실습:
- 예외 처리 모범 사례를 적용한 예제 작성
import logging
# 로그 설정
logging.basicConfig(level=logging.ERROR)
def divide(x, y):
try:
return x / y
except ZeroDivisionError as e:
logging.error("0으로 나눌 수 없습니다.", exc_info=True)
return None
result = divide(10, 0)
print(result) # None
Day 7: 예외 처리 종합 연습 및 프로젝트
- 강의 내용:
- 예외 처리 종합 연습 문제 풀이
- 다양한 예외 처리 문제
- Q&A 세션
- 미니 프로젝트
- 주제 선정 및 프로그램 설계
- 예외 처리를 활용한 프로그램 구현 및 테스트
- 예외 처리 종합 연습 문제 풀이
- 실습:
- 종합 연습 문제 풀기
- 미니 프로젝트 작성 및 발표
# 연습 문제 1: 파일 읽기 시 파일이 없는 경우 예외 처리
def read_file(file_path):
try:
with open(file_path, "r") as file:
return file.read()
except FileNotFoundError as e:
print(f"파일을 찾을 수 없습니다: {e}")
return None
content = read_file("nonexistent_file.txt")
print(content) # None
# 연습 문제 2: 사용자 입력을 받아 숫자로 변환하는 함수 작성 (예외 처리 포함)
def get_number():
while True:
try:
return int(input("숫자를 입력하세요: "))
except ValueError:
print("유효한 숫자가 아닙니다. 다시 시도하세요.")
number = get_number()
print(f"입력한 숫자: {number}")
# 미니 프로젝트 예제: 간단한 계산기 프로그램 (예외 처리 포함)
def calculator():
try:
num1 = float(input("첫 번째 숫자를 입력하세요: "))
operator = input("연산자를 입력하세요 (+, -, *, /): ")
num2 = float(input("두 번째 숫자를 입력하세요: "))
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
result = num1 / num2
else:
print("유효하지 않은 연산자입니다.")
return
print(f"결과: {result}")
except ValueError as e:
print(f"유효하지 않은 입력입니다: {e}")
except ZeroDivisionError as e:
print(f"0으로 나눌 수 없습니다: {e}")
calculator()
이 강의는 파이썬의 예외 처리를 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 다음 주차에 대한 상세 강의를 원하시면 말씀해 주세요!
반응형
'-----ETC2----- > Python' 카테고리의 다른 글
[Python] Week 16: 패키지 (0) | 2024.06.01 |
---|---|
[Python] Week 15: 모듈 (0) | 2024.06.01 |
[Python] Week 13: 파일 입출력 (0) | 2024.06.01 |
[Python] Week 12: 문자열 - 정규표현식 (0) | 2024.06.01 |
[Python] Week 11: 문자열 조작 (0) | 2024.06.01 |