RUBY
Exception 본문
Exception
Exception
예외 담당 클래스
Exception을 상속받아서 새로운 클래스를 만든다. 그리고 __init__ 메서드에서 기반 클래스의 __init__ 메서드를 호출하면서 에러 메시지를 넣어준다.
class 예외이름(Exception):
def __init__(self):
super().__init__('에러메시지')
입력된 숫자가 3의 배수가 아닐 때 발생시킬 예외
class NotThreeMultipleError(Exception): # Exception을 상속받아서 새로운 예외를 만듦
def __init__(self):
super().__init__('3의 배수가 아닙니다.')
def three_multiple():
try:
x = int(input('3의 배수를 입력하세요: '))
if x % 3 != 0: # x가 3의 배수가 아니면
raise NotThreeMultipleError # NotThreeMultipleError 예외를 발생시킴
print(x)
except Exception as e:
print('예외가 발생했습니다.', e)
three_multiple()
5를 입력하면 3의 배수가 아니므로 NotThreeMultipleError 예외가 발생
3의 배수를 입력하세요: 5 (입력)
예외가 발생했습니다. 3의 배수가 아닙니다.
먼저 Exception을 상속받아서 NotThreeMultipleError 예외를 만든다. 그리고 __init__ 메서드 안에서 기반 클래스의 __init__ 메서드를 호출하면서 에러 메시지를 넣는다.
class NotThreeMultipleError(Exception): # Exception을 상속받아서 새로운 예외를 만듦
def __init__(self):
super().__init__('3의 배수가 아닙니다.')
예외를 발생시킬 때는 raise NotThreeMultipleError와 같이 raise에 새로 만든 예외를 지정해주면 된다.
다음과 같이 Exception만 상속받고 pass를 넣어서 아무것도 구현하지 않아도 된다.
class NotThreeMultipleError(Exception): # Exception만 상속받고
pass # 아무것도 구현하지 않음
이때는 예외를 발생시킬 때 에러 메시지를 넣어주면 된다.
raise NotThreeMultipleError('3의 배수가 아닙니다.') # 예외를 발생시킬 때 에러 메시지를 넣음
'프로그래밍 언어 > Python' 카테고리의 다른 글
약수, 소수(파이썬 출력) (0) | 2023.01.13 |
---|---|
텍스트파일 쓰기 (0) | 2023.01.10 |
try ~ except ~ else, finally (0) | 2023.01.09 |
예외, 예외처리 (0) | 2023.01.09 |
추상클래스 (0) | 2023.01.09 |
Comments