예외처리 (try-except-else-finally)
try : 실행할 코드
except : 에러가 발생했을 시 실행되는 부분
else : 에러가 발생하지 않았을 시 실행되는 부분
finally : 에러 여부와 상관없이 마지막에 무조건 실행되는 부분
try:
a = [1, 2]
print(a[3]); # IndexError
4 / 0 # ZeroDivisionError
except ZeroDivisionError as e:
print(e)
except IndexError as e:
print('IndexError')
finally:
print('finish!!')
IndexError
finish!!
● return문이 있을경우 예외처리 실행순서
- finally -> return문
def devide(x, y):
try:
result = x / y
except ZeroDivisionError:
print('ZeroDivisionError')
return True
else:
print('x / y = ', result)
return False
finally:
print('finally finished!!')
>>> devide(2, 0) # try -> except -> finally -> return출력
ZeroDivisionError
finally finished!!
True
>>> devide(2, 1) # try -> else -> finally -> return출력
x / y = 2.0
finally finished!!
False
raise : 에러발생 시키는 구문
def check_type(self):
if type(self) == str:
pass
elif type(self) == int:
raise Exception