Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

RUBY

Exception 본문

프로그래밍 언어/Python

Exception

ruby-jieun 2023. 1. 9. 23:46

 

 

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