반응형
예외처리란 ?
문법 또는 여러가지 이유로 오류가 발생하지만 오류를 무시하고 싶을 때 파이썬은 try, except를 사용해서 예외적으로 오류를 처리할 수 있게 해주는 것이 예외처리 입니다.
예외처리 형식은 다음과 같습니다.
try:
실행할 소스코드
except [발생 오류[as 오류 메시지 변수]]:
오류 일경우 출력 하고 싶다면 작성
예제 ZeroDivisionError - 0으로 나눌경우 예외처리
# 예외처리 try ~ except
def divide(a,b):
return a / b
try:
#c = divide(5,2)
c = divide(5,0)
except ZeroDivisionError:
print('두번째 숫자는 0을 빼고 주세요')
print('종료')
출력 결과
작업 후
두번째 숫자는 0을 주지 마시오
종료
소스코드에서 다음과 같은 함수를 주었습니다.
a / b 의 계산을 하는데 0으로 나눌경우 ZeroDivisionError라는 예외처리를 하였습니다.
c = divide(5,0)을 작성할 경우 5 나누기 0을 의미하는 거이기 떄문에 위의 에러로 인한 예외처리가 발생하였습니다.
0이 아닌 divide(5,2)를 주면 출력 결과는 당연히 예외처리 부분을 제외한 나머지가 출력될 것입니다.
예외처리 IndexError - 참조 범위 오류
# 예외처리 try ~ except
def divide(a,b):
return a / b
try:
aa = [1,2]
print(aa[0])
except IndexError as e:
print('참조 범위 오류 : ', e)
except Exception as err:
print('기타에러' + str(err))
print('종료')
이번에는 참조 범위를 벗어나면 예외처리를 해보겠습니다. 배열 aa는 1과 2를 저장하였고,
print 출력에서 0번째를 출력하도록 하였습니다.
현재는 출력하면 1이 출력될 것입니다.
하지만 다음과 같이 바꿔주면
print(aa[3])
aa배열의 3번째는 없기때문에
다음과 같은 예외처리가 발생합니다.
finally
finally문은 try 수행 도중 예외 발생 여부에 상관없이 수행되는 문장입니다.
보통 close해야 할 때에 많이 사용합니다.
형태는 다음과 같습니다.
try:
소스코드
except Exception as e:
print('err : ' + e)
finally:
cursor.close()
conn.close()
반응형
'python' 카테고리의 다른 글
python - Thread ( 스레드 ) (1) (0) | 2020.05.14 |
---|---|
python - DataBase 연동 & SQL 작업 (0) | 2020.05.13 |
python - OS & pickle (0) | 2020.05.11 |
python - 상속 (2) (0) | 2020.05.10 |
python - 상속 (0) | 2020.05.10 |