[Python] 사용자 정의 예외 만들기

HYEOB KIM·2022년 8월 17일
1

Python

목록 보기
7/7

사용자 정의 예외 만들기

만약 아래와 같이 예외 처리를 만든다고 해봅시다.

value = '가'
try:
	if value not in ['가위', '바위', '보']:
    	raise ValueError
except ValueError:
	print("에러가 발생했습니다.")

ValueError 에러는 굉장히 흔한 에러입니다.
혹시 try 안의 코드 중에 다른 부분에서 ValueError가 발생한다면 위의 코드로는 어느 곳에서 에러가 발생했는지 알 수가 없습니다.

에러도 하나의 클래스입니다.
따라서 에러 유형을 클래스로 정의해서 사용할 수 있습니다.

에러의 최상위 클래스는 Exception입니다.
따라서 UnexpectedRSPValue라는 사용자 정의 에러 클래스를 만들고 최상위 클래스인 Exception을 상속 받겠습니다.

class UnexpectedRSPValue(Exception):
	'''예외 클래스'''

value = '가'
try:
	if value not in ['가위', '바위', '보']:
    	raise UnexpectedRSPValue()
except UnexpectedRSPValue:
	print("에러가 발생했습니다.")

여러 에러 클래스를 만들고 여러 번의 except를 통해 예외 처리를 한 번에 수행할 수 있습니다.

class BadUserName(Exception):
	'''[에러] 이름으로 사용할 수 없는 입력입니다.'''
class PasswordNotMatched(Exception):
	'''[에러] 입력한 패스워드가 서로 일치하지 않습니다.'''

def sign_up():
	'''회원가입 함수'''
    
try:
	sign_up()
except BadUserName:
	print("이름으로 사용할 수 없는 입력입니다.")
except PasswordNotMatched:
	print("입력한 패스워드가 서로 일치하지 않습니다.")
profile
Devops Engineer

0개의 댓글