1. raise
raise는 에러 발생시키고 싶은 곳 아무데나 작성해주면 된다.
- 기본 raise 사용
a = int(input('1부터 5까지의 숫자를 입력하시오: '))
if a < 1 or a > 5:
raise
print(f'입력한 a:{a}입니다.')
1부터 5까지의 숫자를 입력하시오: 0
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[12], line 4
1 a = int(input('1부터 5까지의 숫자를 입력하시오: '))
3 if a < 1 or a > 5:
----> 4 raise
6 print(f'입력한 a:{a}입니다.')
RuntimeError: No active exception to reraise
→ 위와 같이 에러 나타남
- 에러 키워드에 맞게
a = int(input('1부터 5까지의 숫자를 입력하시오: '))
if a < 1 or a > 5:
raise ValueError # 값에 대한 에러 메세지
print(f'입력한 a:{a}입니다.')
1부터 5까지의 숫자를 입력하시오: 0
- 에러 메세지 별도 지정
a = int(input('1부터 5까지의 숫자를 입력하시오: '))
if a < 1 or a > 5:
raise Exception('범위 내의 숫자가 아닙니다. 다시 입력하세요.')
print(f'입력한 a:{a}입니다.')
1부터 5까지의 숫자를 입력하시오: 0
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
Cell In[14], line 6
3 a = int(input('1부터 5까지의 숫자를 입력하시오: '))
5 if a < 1 or a > 5:
----> 6 raise Exception('범위 내의 숫자가 아닙니다. 다시 입력하세요.')
8 print(f'입력한 a:{a}입니다.')
Exception: 범위 내의 숫자가 아닙니다. 다시 입력하세요.
- 예외 처리 구문 try - except와 같이 쓰기
try:
a = int(input('1부터 5까지의 숫자를 입력하시오: '))
if a < 1 or a > 5:
raise Exception('범위 내의 숫자가 아닙니다. 다시 입력하세요.')
print(f'입력한 a:{a}입니다.')
except:
print('다시 입력해달라고요.')
1부터 5까지의 숫자를 입력하시오: 0
다시 입력해달라고요.
→ try안에서 raise를 통해서 에러 발생
2. assert
- 예외를 발생시키는 예외 처리와 비슷하지만, assert는 어떤 조건이 True임을 보증하기 위해 사용
- raise와 비슷하지만 다름 >> raise는 만약 오류가 발생했을 때 "except와 함께 이렇게 처리해라"라는 뜻
- assert는 "이 조건이 참일 때 코드는 내가 보장한다. 그러나 거짓이라는 것은 보증하지 않으므로 AssertionError를 발생시켜라"의 흐름이다.
- 사용 방법
- assert [조건], [오류메세지]
- 조건이 True인 경우, 그대로 코드 진행
- False인 경우 AssertionError와 함께 남길 메세지 (생략 가능)
# 예제 1
a = 10
#True인 경우
print("1. assert True인 경우")
assert a == 10, "a is not 10"
print('끝1')
#False인 경우
print('2. assert False인 경우')
assert a == 99, "a is not 99"
print('끝2')
2. assert False인 경우
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[4], line 3
1 #False인 경우
2 print('2. assert False인 경우')
----> 3 assert a == 99, "a is not 99"
5 print('끝2')
AssertionError: a is not 99
→ 다음과 같이 내가 지정한 assertionError가 나옴
# 예제 2
age = int(input('나이를 입력하시오: '))
assert age >= 0, "나이가 마이너스인게 가능한가?"
print(f'당신의 나이는 {age}입니다.')
나이를 입력하시오: -1
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[8], line 5
1 # 예제 2
3 age = int(input('나이를 입력하시오: '))
----> 5 assert age >= 0, "나이가 마이너스인게 가능한가?"
7 print(f'당신의 나이는 {age}입니다.')
AssertionError: 나이가 마이너스인게 가능한가?
출처: https://blockdmask.tistory.com/553
https://blockdmask.tistory.com/538
'Python' 카테고리의 다른 글
프로그래머스 python3 - 배열 원소의 길이 (0) | 2025.03.31 |
---|---|
프로그래머스 python3 - 최댓값 만들기 (1) (0) | 2025.03.30 |
프로그래머스 python3 - 특정 문자 제거하기 (0) | 2025.03.30 |
프로그래머스 python3 - 피자 나눠 먹기 (1) (0) | 2025.03.30 |