끄적끄적 코딩
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

검색 태그