*실패하지 않는 파이썬 코드의 뒷받침, 예외처리 확실하게 익히기*
예외처리는 단순한 오류 회피가 아니라,
사용자와 프로그램 모두를 위한 방어 장치입니다.
이번 편에서는 try-except의 고급 구조와
raise, 사용자 정의 예외까지 알아봅니다.
━━━━━━━━━━━━━━━━━━━
🧯 1. try-except-else-finally 구조
try:
x = int(input("숫자를 입력하세요: "))
print("10 / x =", 10 / x)
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except ValueError:
print("숫자만 입력하세요.")
else:
print("예외 없이 성공!")
finally:
print("프로그램 종료")
- try: 예외가 발생할 수 있는 코드
- except: 발생한 예외 처리
- else: 예외 없이 성공한 경우 실행
- finally: 무조건 실행되는 마무리 블록
━━━━━━━━━━━━━━━━━━━
📌 2. 예외 객체 출력하기
try:
n = int("abc")
except ValueError as e:
print("예외 메시지:", e)
- `as e` 형태로 예외 메시지 확인 가능
- 로깅, 디버깅 시 필수
━━━━━━━━━━━━━━━━━━━
📢 3. 강제로 예외 발생시키기 – raise
x = -5
if x < 0:
raise ValueError("0 이상의 숫자만 입력 가능합니다.")
- 조건을 걸고 직접 예외를 발생시킬 수 있음
- 사용자 실수나 로직 오류 탐지에 활용됨
━━━━━━━━━━━━━━━━━━━
🛠 4. 사용자 정의 예외 클래스 만들기
class CustomError(Exception):
def __init__(self, msg):
super().__init__(msg)
def check_score(score):
if score < 0 or score > 100:
raise CustomError("0~100 사이만 가능합니다.")
try:
check_score(150)
except CustomError as ce:
print("오류 발생:", ce)
- Exception 클래스를 상속받아 새로운 예외 타입 생성
- 로직에 맞는 이름으로 명확하게 구분 가능
━━━━━━━━━━━━━━━━━━━
🔍 실무에서 자주 쓰는 예외 종류
- ValueError
- TypeError
- KeyError
- FileNotFoundError
- ZeroDivisionError
- IndexError
- RuntimeError
- AssertionError
━━━━━━━━━━━━━━━━━━━
💬 킴별의 한마디
“예외처리는 코드의 ‘안전벨트’입니다.
발생할 수 있는 문제를 미리 감지하고,
사용자에게 명확한 안내를 줄 수 있는 기회예요.”
━━━━━━━━━━━━━━━━━━━
파이썬중급,예외처리,tryexcept,finally,raise,사용자정의예외,에러핸들링,코딩안정성,실무코드,파이썬오류관리
'PYTHON' 카테고리의 다른 글
[중급 5편] 클래스 상속과 다형성 실전.zip (0) | 2025.05.13 |
---|---|
[중급 4편] 파일 처리 심화.zip (0) | 2025.05.11 |
[중급 2편] 모듈과 패키지 기초.zip (0) | 2025.05.10 |
[중급 1편] 클래스와 객체지향 기초.zip (0) | 2025.05.10 |
[PYTHON /Import ] 파이썬 import Requests error 해결 하기 (0) | 2021.01.26 |