Python에서 예외 발생시키는 방법 (raise Exception)
Language/Python2024. 8. 22. 19:56예외 처리는 예상하지 못한 상황에 대해 프로그램이 비정상적으로 종료되는 것을 막기 위해 사용합니다. 예외 처리를 하는 방법에 대해 궁금하신 분은 아래 글을 참고 바랍니다.
때로는 직접 예외를 발생시켜야 할 때가 있으며, 이때 raise
키워드를 사용합니다. 본 글에서는 파이썬에서 예외를 발생시키는 방법에 대해 소개합니다.
raise로 예외 발생시키기
raise
키워드를 사용하면, 원하는 시점에 예외를 발생시킬 수 있습니다. 이미 정의된 예외(ValueError
, TypeError
, RuntimeError
등)를 발생시킬 수 있으며, 직접 만든 사용자 정의 예외도 발생시킬 수 있습니다.
def check_age(age):
if age < 0:
raise ValueError("나이는 0보다 작을 수 없습니다.")
elif age > 100:
raise ValueError("비현실적인 나이입니다.")
return f"당신의 나이는 {age}살입니다."
try:
print(check_age(int(input("나이를 입력해주세요:"))))
except ValueError as e:
print(f"예외 처리: {e}")
위 코드에서 나이가 0보다 작거나 100을 초과하면 ValueError
를 발생시킵니다. 발생한 예외는 try-except
블록에서 처리됩니다.
사용자 정의 예외로 예외 발생시키기
기본적으로 파이썬에서 제공해주는 예외 말고도, 사용자가 커스텀하게 만든 예외도 raise를 사용하여 예외를 발생시킬 수 있습니다. 사용자 정의 예외는 일반적으로 Exception
클래스를 상속받아 정의합니다.
class NegativeAgeError(Exception):
def __init__(self, age):
super().__init__(f"잘못된 나이: {age}. 나이는 음수일 수 없습니다.")
self.age = age
def validate_age(age):
if age < 0:
raise NegativeAgeError(age)
return f"나이는 {age}입니다."
try:
print(validate_age(-10))
except NegativeAgeError as e:
print(f"사용자 정의 예외 처리: {e}")
NegativeAgeError
라는 사용자 정의 예외를 만들었습니다. 나이가 음수일 경우에는 해당 예외를 발생시키고, try-except
블록에서 이를 처리하도록 하였습니다.
예외 재발생시키기
때로는 예외를 잡았지만, 그 예외를 다시 발생시키고 싶을 때가 있습니다. 이럴 때 except 블록에서 raise
키워드를 다시 사용하여 예외를 재발생시킬 수 있습니다.
아래 코드는 기존 예외에 새로운 메시지를 덧붙이는 예시입니다.
try:
result = 10 / 0
except ZeroDivisionError as e:
raise ZeroDivisionError("0으로 나누려는 시도가 있었습니다.") from e
위 결과와 같이 새로운 메시지를 담아서 예외를 다시 발생시킬 수 있습니다.
'Language > Python' 카테고리의 다른 글
PyInstaller로 파이썬 코드를 exe 파일로 빌드하기 (0) | 2024.08.23 |
---|---|
파이썬의 모듈(module)과 패키지(package) (0) | 2024.08.23 |
Python에서 예외 처리하는 방법 (try ~ except) (0) | 2024.08.22 |
Python에서 파일 입출력(File IO) 읽고 쓰는 방법 (0) | 2024.08.21 |
파이썬 특징과 배워야하는 이유 (2) | 2023.10.19 |
IT 기술에 대한 글을 주로 작성하고, 일상 내용, 맛집/숙박/제품 리뷰 등 여러가지 주제를작성하는 블로그입니다. 티스토리 커스텀 스킨도 개발하고 있으니 관심있으신분은 Berry Skin을 검색바랍니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!