파이썬, 사용자 정의 예외 만드는 예제
글. 수알치 오상문
사용자 예외는 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)에 맞지 않습니다.')
'Python 활용' 카테고리의 다른 글
파이썬, httpx (0) | 2022.08.03 |
---|---|
파이썬, 에러 예외 종류 (0) | 2022.07.24 |
파이썬, 호출 함수에서 발생한 예외를 호출한 곳에서 처리 (0) | 2022.07.24 |
파이썬, 함수에서 발생한 에러를 함수 호출한 곳으로 넘기기 (0) | 2022.07.23 |
파이썬, 코드 문서화에 도움을 주는 독스트링과 스핑크스 (0) | 2022.07.21 |