728x90
1. 파이썬 raise 에러
raise 에러는 사용자의 입력이나, 프로그램이 돌아가다가 우리가 의도하지 않게 돌아가는 것을 방지하기 위해서
일부러 에러를 발생시켜야 하는 경우가 있습니다, 그때 raise 를 이용하여 에러를 발생시킵니다.
raise 예시
chicken = 10
waiting = 1
while(True):
print("[남은 치킨 : {0}]".format(chicken))
order = int(input("치킨 몇 마리 주문하시겠습니까?"))
if order > chicken:
print("재료가 부족합니다")
elif order <= 0:
raise #raise 라이브러리를 이용해서 에러 발생
#raise ValueError #ValueError등 이미 지정되어있는 에러 명령어를 출력하면서 에러 발생
#raise ValueError("한마리 이상 주문해주세요")
else:
print("[대기번호 {0}] {1} 마리 주문이 완료되었습니다." \
.format(waiting, order))
waiting += 1
chicken -= order
위 예시에서는 치킨 주문량이 1개 미만일 경우
1. 다른 표기 없이 에러만 발생시키는 raise 선언
2. ValueError 라고 표기해주는 raise ValueError 처럼 기존에 존재하는 에러 함수등을 같이 선언
3. 원하는 에러 메시지를 함께 출력
해주는 총 3가지 코드를 예시로 적어봤습니다.
2. try & except 함수를 활용한 raise 에러
이번에는 유튜버 나도코딩님의 퀴즈 문제를 참조하여
try & except 함수를 활용한 raise 에러 처리 유형에 대해서 보여드리겠습니다.
from multiprocessing.connection import wait
chicken = 10
waiting = 1
class SoldOutError(Exception):
pass
while(True):
try:
print("[남은 치킨 : {0}]".format(chicken))
order = int(input("치킨 몇 마리 주문하시겠습니까?"))
if order > chicken:
print("재료가 부족합니다")
elif order <= 0:
raise ValueError
else:
print("[대기번호 {0}] {1} 마리 주문이 완료되었습니다." \
.format(waiting, order))
waiting += 1
chicken -= order
if chicken <= 0:
raise SoldOutError
except ValueError:
print("잘못된 값을 입력하였습니다.")
except SoldOutError:
print("재고가 소진되어 더 이상 주문을 받지 않습니다.")
원하는 Error Class를 생성해주고
try & except에서 호출하여 원하는 Custom Error 함수를 활용할수 있습니다.
728x90
반응형
'Python Study > 파이썬 공부하기' 카테고리의 다른 글
Python 딕셔너리 사용방법 #기초편 (0) | 2022.11.30 |
---|---|
파이썬 사용할때 필요한 깨알 팁 (0) | 2022.10.04 |
Class 개념이해를 위한 간단한 퀴즈 풀어보기 (0) | 2022.09.13 |
어떤 환경에서든 동작하도록 Python에서 exe 실행 파일 만들기 (0) | 2021.11.04 |
파이썬 입문자들의 뇌를 깨우쳐 주기 위한 Quiz! (0) | 2021.01.06 |