728x90
예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류 상황을 제어하는 방법입니다. 파이썬은 try-except
문 외에도 finally
, else
, 사용자 정의 예외 등 다양한 고급 기능을 제공합니다.
● 예외 처리 구조 복습
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
finally:
print("항상 실행됨")
finally
블록은 예외 발생 여부와 관계없이 반드시 실행됩니다. else
는 예외가 발생하지 않았을 때만 실행됩니다.
● 다중 예외 처리
try:
x = int("abc")
except (ValueError, TypeError) as e:
print(f"예외 발생: {e}")
괄호를 사용하여 여러 예외를 한 번에 처리할 수 있습니다.
● 예외 재발생 (raise)
try:
raise ValueError("잘못된 값")
except ValueError as e:
print("처리 중...")
raise # 예외 다시 발생
예외를 처리한 후 다시 외부로 전달하고 싶을 때 raise
만 단독으로 사용합니다.
● 사용자 정의 예외 클래스
class MyError(Exception):
pass
def check_age(age):
if age < 0:
raise MyError("나이는 음수가 될 수 없습니다.")
사용자 정의 예외는 내장 Exception 클래스를 상속받아 만들 수 있으며, 다양한 예외 상황에 맞춰 커스터마이징 가능합니다.
● 예외 메시지 커스터마이징
class CustomError(Exception):
def __init__(self, message, code):
self.message = message
self.code = code
super().__init__(f"[{code}] {message}")
에러 코드나 상세 메시지를 포함하여 더 명확한 예외 정보를 전달할 수 있습니다.
● 마무리
정교한 예외 처리는 프로그램의 안정성과 유지보수성을 높여줍니다. 특히 사용자 정의 예외를 통해 상황에 맞는 에러를 정의하고, try-except-else-finally
블록을 적절히 활용해보시기 바랍니다.
728x90
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter40. 파일 입출력 고급 기법 (0) | 2025.05.24 |
---|---|
[파이썬][중급] Chapter39. 파일 경로 처리와 pathlib 모듈 (0) | 2025.05.24 |
[파이썬][중급] Chapter37. 정규표현식(re 모듈) 기초 (0) | 2025.05.24 |
[파이썬][중급] Chapter36. calendar 모듈과 날짜 계산 응용 (0) | 2025.05.24 |
[파이썬][중급] Chapter35. datetime과 시간 처리 심화 (0) | 2025.05.24 |