Data Science/python
예외 처리 구문 : try-except 구문
jay3108
2021. 12. 24. 16:17
1. try-except문
파이썬 예외 처리의 기본구문
try:
예외 발생 가능 코드
except 예외 타입:
예외 발생 시 실행되는 코드
# 얘만 알고 있으면 됨 : 크롤링할 때 쓰임
for i in range(10):
try:
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
Not divided by 0
10.0
5.0
3.3333333333333335
2.5
2.0
1.6666666666666667
1.4285714285714286
1.25
1.1111111111111112
2. raise문
try-except문과 달리 필요할 때 예외를 발생시키는 코드
에러가 발생헀을 때, 입력이 잘못된 것을 알려 주면서 종료하는 것
raise 예외 타입("예외 정보")
while True:
value = input("변환할 정수값을 입력해 주세요: ")
for digit in value:
if digit not in "0123456789":
raise ValueError("숫자값을 입력하지 않았습니다.")
print("정수값으로 변환된 숫자: ", int(value))
변환할 정수값을 입력해 주세요: 15
정수값으로 변환된 숫자: 15
변환할 정수값을 입력해 주세요: 16354
정수값으로 변환된 숫자: 16354
변환할 정수값을 입력해 주세요: 숫자
변환할 정수값을 입력해 주세요: 15
정수값으로 변환된 숫자: 15
변환할 정수값을 입력해 주세요: 16354
정수값으로 변환된 숫자: 16354
변환할 정수값을 입력해 주세요: 숫자
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_2696/3242170852.py in <module>
3 for digit in value:
4 if digit not in "0123456789":
----> 5 raise ValueError("숫자값을 입력하지 않았습니다.")
6 print("정수값으로 변환된 숫자: ", int(value))
ValueError: 숫자값을 입력하지 않았습니다.
3. assert문
assert True or False 결과값이 나오는 함수 -> 간단하게 예외 발생
def get_binary_nmubmer(decimal_number):
assert isinstance(decimal_number, int) # 입력값이 특정 클래스의 인스턴스인지
return bin(decimal_number) #bin() 정수를 이진수로 바꾸는 함수
print(get_binary_nmubmer(7))
0b111
print(get_binary_nmubmer("7"))
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_2696/2556258275.py in <module>
----> 1 print(get_binary_nmubmer("7"))
~\AppData\Local\Temp/ipykernel_2696/3219244234.py in get_binary_nmubmer(decimal_number)
1 def get_binary_nmubmer(decimal_number):
----> 2 assert isinstance(decimal_number, int) # 입력값이 특정 클래스의 인스턴스인지
3 return bin(decimal_number)
AssertionError: