728x90
<python />
import random
class inputWrongNumError(Exception):
pass
randomNum = random.randint(1, 9)
while(1):
try:
print("1 ~ 9의 값 중 입력하여 맞추어보세요.")
num = int(input("입력 : "))
if num < 1 or num > 9:
raise inputWrongNumError
if num == randomNum:
print("성공!")
break
else:
print("다시 시도 해보세요")
continue
except inputWrongNumError:
print("1 ~ 9 값을 입력해주세요\n")
--출력 결과--
1 ~ 9의 값 중 입력하여 맞추어보세요.
입력 : 10
1 ~ 9 값을 입력해주세요
만들 예외처리 명을 class로 만들고 파라미터에 Exception을 받습니다.
먼저 내용을 pass로 하고 진행해보았습니다.
rasie를 통해 새로만든 inptuWrongNumError를 발생시킨 결과
except에서 해당 에러를 확인하여 print문을 실행 시켰습니다.
<python />
import random
class inputWrongNumError(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
randomNum = random.randint(1, 9)
while(1):
try:
print("1 ~ 9의 값 중 입력하여 맞추어보세요.")
num = int(input("입력 : "))
if num < 1 or num > 9:
raise inputWrongNumError("Err) input : {0}".format(num))
if num == randomNum:
print("성공!")
break
else:
print("다시 시도 해보세요")
continue
except inputWrongNumError as err:
print(err)
print("1 ~ 9 값을 입력해주세요\n")
--출력 결과--
1 ~ 9의 값 중 입력하여 맞추어보세요.
입력 : 10
Err) input : 10
1 ~ 9 값을 입력해주세요
위의 예제처럼 새로만든 inputWrongNumError에 __init__(생성자)와 __str__를 넣어줍니다.
__str__은 객체를 문자열로 표현한 것을 반환합니다.
inputWrongNumError이 발생될 때 생성자를 통해서 msg변수에 값이 입력되고
except에서 해당 객체를 print로 찍었을 때 msg변수의 값이 출력되는 것 입니다.
'Python' 카테고리의 다른 글
[파이썬] 패키지, 모듈 위치 찾기 (0) | 2020.09.15 |
---|---|
[파이썬] 모듈(module), 패키지(package) (0) | 2020.09.15 |
[파이썬] raise (0) | 2020.09.15 |
[파이썬] 예외처리 (try, except, finally) (0) | 2020.09.15 |
[파이썬] pass, super (0) | 2020.09.15 |