• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

맨 마지막 줄 print(err)이 어떻게 raise 를 불러낸 것인가요?

21.03.03 23:14 작성 조회수 97

0

질문이 있습니다!!

except BigNumberError: 만 있었는데 마지막에 as err를 추가 하고, 맨 마지막 줄 print(err)을 넣어주셨는데요. 

어떻게 print(err)가 raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))를 부른 것인가요?

raise BigNumberError()은 물론이고 try: 안의 코드 중 그 어떤 것도 err 와 관련성 있는 것을 모르겠습니다.

class BigNumberError(Exception):
    def __init__(selfmsg):
        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)

답변 1

답변을 작성해보세요.

1

종현님의 프로필

종현

2021.03.14

except BigNumberError as err:

이 부분에서 as err을 썼는데, as는 별명붙여주는 기능이라 생각하심 되어요. 그래서 

BigNumberError 를 이제부터 err로 하겠다. 라고 한 뒤 err을 사용한거죠.