파이썬/예외처리

사용자 정의 예외처리

hyunai 2026. 2. 15. 00:05
class BigNumberError(Exception):
    pass

try:
    print("한 자리 숫자 나누기 전용 계산기")
    num1 = int(input("첫번째 숫자를 입력 : "))
    num2 = int(input("두번째 숫자를 입력 : "))
    if num1 >= 10 or num2 >= 10:
        raise BigNumberError
    print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
    print("잘못된 값 입력. 한 자리 숫자만 입력")
except BigNumberError:
    print("에러가 발생함. 한 자리 숫자만 입력해야됨.")
    
==========================================================
한 자리 숫자 나누기 전용 계산기
첫번째 숫자를 입력 : 10
두번째 숫자를 입력 : 5
에러가 발생함. 한 자리 숫자만 입력해야됨.
  • 에러가 났을 때의 예외처리를 직접 만들어줄 수 있다.
  • 위에 BigNumberError라는 클래스를 만들어준다.
    • 파라미터 값 안에 Exception을 필수로 넣어줘야된다.
  • raise로 위에 만든 예외처리 클래스로 보내준다.

에러처리 class에 바로 함수를 만들라면?

class BigNumberError(Exception):
    def __init__(self, msg):
        self.msg = msg
        
    def __str__(self):
        return self.msg

try:
    print("한 자리 숫자 나누기 전용 계산기")
    num1 = int(input("첫번째 숫자를 입력 : "))
    num2 = int(input("두번째 숫자를 입력 : "))
    if num1 >= 10 or num2 >= 10:
        raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))
    print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
    print("잘못된 값 입력. 한 자리 숫자만 입력")
except BigNumberError as err:
    print("에러가 발생함. 한 자리 숫자만 입력해야됨.")
    print(err)
    
==========================================================
한 자리 숫자 나누기 전용 계산기
첫번째 숫자를 입력 : 10
두번째 숫자를 입력 : 5
에러가 발생함. 한 자리 숫자만 입력해야됨.
입력값 : 10, 5
  • 클래스에 똑같이 생성자 함수를 만든다.
  • __str__이라는 함수를 만든다.
    • return에 필요한 걸 넣는다. (위에서는 msg라는 메세지를 넣음)
  • raise에 해당 예외처리 클래스를 넣는다.
    • 파라미터에 위에 함수에 선언한 msg 값을 넣는다.
  • except를 내면서 as err를 넣는다.
    • err 값을 print를 하면 해당 파라미터에 넣은 msg 값이 출력된다.

'파이썬 > 예외처리' 카테고리의 다른 글

finally  (0) 2026.02.23
에러 발생시키기  (0) 2026.02.13
예외처리  (0) 2026.02.13