파이썬, 사용자 정의 예외 만드는 예제
파이썬, 사용자 정의 예외 만드는 예제
글. 수알치 오상문
사용자 예외는 Exception 클래스를 상속받아서 만든다.
# 입력한 점수가 범위를 벗어날 때 발생 시킬 사용자 정의 예외 ScoreRangeError
class ScoreRangeError(Exception):
def __init__(self):
super().__init__('점수 범위(0~100)에 맞지 않습니다.')
# 점수를 입력받을 때 예외처리를 하는 함수 예
def get_score():
try:
score = int(input('점수(0~100): '))
if score > 100 or score < 0:
raise ScoreRangeError # ScoreRangeError 예외 발생
except ScoreRangeError as e:
print('Error:', e)
score = None
except Exception as e:
print('Error:', e)
score = None
finally:
return score
s = get_score()
if s is not None:
print('입력한 점수:', s)
else:
print('입력한 점수는 비정상입니다.')
[실행 결과]
점수(0~100): 100
입력한 점수: 100
점수(0~100): -1
Error: 점수 범위 0~100을 벗어났습니다.
입력한 점수는 비정상입니다.
[참고] 아무 것도 구현하지 않은 사용자 정의 예외와 강제 예외 발생
# 예외에 대해 아무 것도 구현하지 않은 사용자 정의 예외 ScoreRange2Error
class ScoreRange2Error(Exception):
pass
# 이런 예외를 raise로 발생시킬 때는 에러 메시지를 추가하자.
raise ScoreRange2Error('점수 범위(0~100)에 맞지 않습니다.')