[Python] 예외와 오류 관리
Y
Yerim
- Python
# Syntax Error
for i in range(10)
print(i)# Name Error
print(x)# Type Error
x = 10
y = '20'
print(x + y)# Index Error
my_list = [1, 2, 3]
print(my_list[3])# Key Error
my_dict = {'a':1, 'b':2}
print(my_dict['c'])# Value Error
int('a')# ZeroDivision Error
x = 10
y = 0
print(x / y)# Attribute Error
my_list = [1, 2, 3]
print(my_list.append(4))# Type Error
def add(x, y):
return x + y
add(1, 2, 3)# File I/O Error
f = open('non-existent.txt', 'r')
f.read()test = 'hello'
assert test == 'hello', '에러 메시지 1' # 1
assert test == 'world', '에러 메시지 2' # 2
assert test + 3 == 5, '에러 메시지 3' # 3raise
raise ValueError
raise ValueError('코드를 잘~ 만들어주세요')try:
1/0
except ValueError:
print('ValueError')
except ZeroDivisionError:
print('ZeroDivisionError')
print(ZeroDivisionError)
print(type(ZeroDivisionError))
print(dir(ZeroDivisionError))class Leehojun(Exception): # Exception을 상속받으면 된다
def __init__(self):
super().__init__('입력된 값이 leehojun이 아닙니다.')import logging
logging.basicConfig(level=logging.INFO) # 어느 레벨로부터 로깅할지, 기본으로 warning부터
logging.debug('This is a debug message') # 고쳐야 할 코드, 기록 필요
logging.info('This is a info message') # 정보성 메시지
logging.warning('This is a warning message') # 경고 메시지
logging.error('This is an error message') # 에러 메시지 (프로그램은 동작)
logging.critical('This is a critical message') # 프로그램 중지 (에러처리 안된경우)
try:
# 예외가 발생할 가능성이 있는 코드
except:
# 예외 처리 코드try:
# 예외가 발생할 가능성이 있는 코드
except:
# 예외 처리 코드
else:
# 예외가 발생하지 않을 때 실행되는 코드
finally:
# 예외 발생 여부와 상관없이 항상 실행되는 코드try:
# 예외가 발생할 가능성이 있는 코드
except:
# 예외 처리 코드
else:
# 예외가 발생하지 않을 때 실행되는 코드try:
# 예외가 발생할 가능성이 있는 코드
finally:
# 예외 발생 여부와 상관없이 항상 실행되는 코드try:
# 예외가 발생할 가능성이 있는 코드
except:
# 예외 처리 코드
finally:
# 예외 발생 여부와 상관없이 항상 실행되는 코드