PYTHON

[중급 3편] 예외처리 고급.zip

Kim.Sung 2025. 5. 11. 08:23
728x90

*실패하지 않는 파이썬 코드의 뒷받침, 예외처리 확실하게 익히기*


예외처리는 단순한 오류 회피가 아니라,  
사용자와 프로그램 모두를 위한 방어 장치입니다.  
이번 편에서는 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,사용자정의예외,에러핸들링,코딩안정성,실무코드,파이썬오류관리

728x90