기본형태
try:
c=a+b
except:
print(c)
이런식으로 except 뒤에 특정 에러를 안붙이면 모든 에러에 대해서 처리하는것을 의미한다
내부 클래스
ValueError, TypeError, ZeroDivisionError
#ValueError
try:
num = int("abc") # 문자열을 정수로 변환 시도 (올바르지 않은 값)
except ValueError as e:
print("ValueError occurred:", e)
#TypeError
try:
result = 10 + "20" # 정수와 문자열의 덧셈 연산 시도 (데이터 타입이 일치하지 않음)
except TypeError as e:
print("TypeError occurred:", e)
#내부 클래스들은 e라는 변수에 해당하는 메시지가 이미 저장 되어있다
실전
class handleStr(Exception):
pass
class handleBlank(Exception):
pass
def solve(arr):
sum=0
for i in range(len(arr)):
try:
sum+=int(arr[i])
except :
print("("+str(sum)+")")
raise handleStr
print(sum)
while True:
try:
numlist = input().split()
if not numlist:
raise handleBlank
solve(numlist)
except handleStr:
continue
except handleBlank:
break
'''
1. 예외처리 클래스도 하나의 클래스다
2. except : ->모든 예외처리를 여기서 다룬다
3. raise ~ ->~를 발생시킨다
3-1. 이때 raise한것을 다른 except에서 무조건 다뤄야 한다
위의 코드에서 while안에
except handler:
continue가 존재한다
5. pass는 코드를 비워둔다는 뜻이다
5-1. 원래 클래스는 __init__(self)를 통해서 생성자를 만들어야 하지만
pass를 사용하면 안그래도 된다
'''
'Python' 카테고리의 다른 글
Class (0) | 2024.06.10 |
---|---|
Functional Programming (1) | 2024.06.09 |
list comprehension (1) | 2024.06.09 |
Recursion (0) | 2024.06.07 |