exception란 코드를 실행하는 중에 발생한 에러를 뜻함.
try:
실행코드
exception:
예외가 발생핼을 때 처리하는 코드
try:
x = int(input())
y = 10 / x
print(y)
except:
print('error')
0
error
특정 에러 처리
try:
실행할 코드
exept 예외이름:
예외가 발생핼을 때 처리하는 코드
y = [10,20,30]
try:
index, x = map(int, input().split())
print(y[index] / x)
except ZeroDivisionError:
print('숫자를 0으로 나눌 수 없습니다')
except IndexError:
print('index error')
0 0
숫자를 0으로 나눌 수 없습니다
3 0
index error
예외의 에러 메시지 받아오기
try:
실행할 코드
except 예외 as 변수:
예외가 발생했을 때 처리하는 코드
except Exception as e:
print('error', e)
else and finally
try:
실행할 코드
exception:
예외가 발생했을 때 처리하는 코드
else:
예외가 발생하지 않았을 때 실행하는 코드
finally:
예외 발생 여부와 상관없이 항상 실행할 코드
예외를 발생시켜봅시다.
def func():
x = int(input('3의 배수를 입력하시오'))
if x % 3 != 0:
raise Exception('3배수가 아닙니다')
print(x)
try:
func()
except Exception as e :
print('예외가 발생했습니다.', e)
함수안에서 try except가 없는 상태에서 raise로 예외를 발생시켰다. 이렇게 되면 바깥에 있는 except에서 예외처리 된다. 예외가 발생하더라도 현재 코드 블록에서 처리해줄 except가 없다면 except가 나올때까지 진행. 만약에 없다면? 에러표시가 난다.
예외를 자체적으로 만들어보기
class 예외이름(Exception):
def __init__(self):
super().__init__('에러메세지')