raise 키워드?
어떤 상황에서,
코드의 정상작동유무와는 관계없이
에러를 무조건 발생시키는 키워드이다.
try:
text = "1234"
print(text + 4)
except TypeError as typeError:
print(f"{typeError}")
else:
print(text + 4)
finally:
raise KeyError("내가 만든 키에러입니다.")
>>
raise KeyError("내가 만든 키에러입니다.")
KeyError: '내가 만든 키에러입니다.'
어떤 상황에서 raise 키워드를 쓸까?
한 예로써,
어떤 입력값을 받았을 때
해당 값이 상식적으로 적절하지 않은 경우
의도적으로 예외를 생성할 수 있다.
height = float(input("키를 입력하시오"))
weight = int(input("몸무게를 입력하시오"))
bmi = weight / height **2
print(bmi)
위의 경우 키와 몸무게를 입력하여 bmi를 계산한다.
그런데 입력값으로 키 300, 몸무게 50을 입력한다면
상식적으로 적절하지 않은 입력값이다고 판단할 수 있다.
이런 경우 결과적으로 틀린 값을 생성해낸다.
그런데 코드 자체에는 문제가 없기 때문에 에러를 발생시키지 않는다.
이런 경우에 raise 키워드로 나만의 에러를 발생시킬 수 있다.
어떻게 만들까?
raise 에러유형("에러에 대한 설명")
height = float(input("키를 입력하시오"))
weight = int(input("몸무게를 입력하시오"))
bmi = weight / height **2
if height >300:
raise ValueError("입력값이 잘못되었습니다. 키의 입력값이 너무나도 큽니다.")
print(bmi)
>>
raise ValueError("입력값이 잘못되었습니다. 키의 입력값이 너무나도 큽니다.")
ValueError: 입력값이 잘못되었습니다. 키의 입력값이 너무나도 큽니다.
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[30-5 파이썬] JSON, json.dump(), json.load(), json.update(), 제이슨 (1) | 2022.09.19 |
---|---|
[30-4 파이썬] 예외처리 연습문제- while, 함수 재귀호출 사용하기, json파일 (0) | 2022.09.19 |
[30-2 파이썬] 예외처리, try, except, else, finally (1) | 2022.09.19 |
[30-1 파이썬] 예외의 종류 FileNotFoundError, KeyError, IndexError, TypeError (1) | 2022.09.19 |
[29-2 파이썬] tkinter 패스워드 매니저 만들기 (0) | 2022.09.18 |