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 값이 출력된다.