ch0nny_log

[빅데이터분석] Python_25. 사용자 정의 예외 처리 본문

빅데이터 분석(with 아이티윌)/python

[빅데이터분석] Python_25. 사용자 정의 예외 처리

chonny 2024. 8. 8. 16:06

 

try:
    # 사용자로부터 입력 받기
    number1 = int(input("첫 번째 숫자를 입력하세요: "))
    number2 = int(input("두 번째 숫자를 입력하세요: "))

    # 나누기 수행
    result = number1 / number2

except ValueError:
    print("유효한 숫자가 아닙니다. 다시 시도하세요.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다. 다른 숫자를 입력하세요.")
else:
    print(f"나누기 결과: {result}")

def check_score(score):
    """점수가 유효한지 검사하는 함수"""
    if score < 0 or score > 100:
        # 일반적인 예외 발생
        raise Exception("점수는 0 이상 100 이하로 입력해야 합니다.")
    return score

try:
    score = int(input("점수를 입력하세요: "))
    valid_score = check_score(score)
    print(f"입력한 점수는 {valid_score}입니다.")
except Exception as e:
    print(f"잘못된 입력입니다: {e}")
except ValueError:
    print("유효한 숫자를 입력하세요.")
finally:
    print("프로그램이 종료되었습니다.")

# 사용자 정의 예외 클래스 정의
class InvalidScoreError(Exception):
    """점수가 유효하지 않을 때 발생하는 예외"""
    def __init__(self, score, message="점수는 0 이상 100 이하로 입력해야 합니다."):
        self.score = score
        self.message = message
        super().__init__(self.message)

    def __str__(self):
        return f'{self.message} (입력한 점수: {self.score})'

def check_score(score):
    """점수가 유효한지 검사하는 함수"""
    if score < 0 or score > 100:
        # 사용자 정의 예외를 발생
        raise InvalidScoreError(score)
    return score

try:
    score = int(input("점수를 입력하세요: "))
    valid_score = check_score(score)
    print(f"입력한 점수는 {valid_score}입니다.")
except InvalidScoreError as e:
    print(f"잘못된 입력입니다: {e}")
except ValueError:
    print("유효한 숫자를 입력하세요.")
finally:
    print("프로그램이 종료되었습니다.")

'

# 사용자 정의 예외 클래스 정의
class InvalidScoreError(Exception):
    """나이가가 유효하지 않을 때 발생하는 예외"""
    def __init__(self, score, message="나이는 0 이상 150 이하로 입력해야 합니다."):
        self.score = score
        self.message = message
        super().__init__(self.message)

    def __str__(self):
        return f'{self.message} (입력한 점수: {self.score})'

def check_score(score):
    """입력한 나이가 유효한지 검사하는 함수"""
    if score < 0 or score > 100:
        # 사용자 정의 예외를 발생
        raise InvalidScoreError(score)
    return score

try:
    score = int(input("나이를 입력하세요: "))
    valid_score = check_score(score)
    print(f"입력한 나이는 {valid_score}입니다.")
except InvalidScoreError as e:
    print(f"잘못된 입력입니다: {e}")
except ValueError:
    print("유효한 나이를 입력하세요.")
finally:
    print("프로그램이 종료되었습니다.")