오류 처리 기법인 try, except문에서는 try 조건 수행 중 오류 발생 시 except 조건이 수행됩니다.
작성방법:
try:
...
except [발생 오류[as 오류 메세지 변수]]:
...
except 구문을 작성하는 방법에는 3가지가 있습니다.
1. try, except 만 사용하는 방법
오류 종류에 상관없이 오류가 발생하면 except 문을 수행합니다.
try:
...
except:
...
2. 발생 오류만 포함한 except문
발생한 오류가 except 문에 작성한 오류와 일치할 때만 except문을 수행합니다.
try:
...
except 발생오류:
...
3. 발생 오류와 오류 메세지 변수를 포함한 except문
2번째 내용에서 오류 메세지의 내용을 알고 싶을 때 사용하는 방법입니다.
try:
...
except 발생오류 as 오류메세지변수:
...
아래의 경우, try문에 에러가 없어서 try문 그대로 출력되었습니다.
a = [10,11,12]
try:
for i in range(4):
print(a[i])
except:
pass
결과값:
10
11
12
하지만 아래 조건에서는 a[4]번째의 인덱스 값이 없기 때문에, 인덱스 에러가 발생합니다.
a=[1,2,3]
try:
for i in range (4):
print(a[i])
except IndexError as e:
print(e)
결과값:
1 2 3 list index out of range
두 에러 중 어떤 에러가 날지 확실하지 않은 경우, except문을 두 번 작성해주었습니다.
try:
4/0
except IndexError as e:
print(e)
except ZeroDivisionError as e:
print(e)
결과값: division by zero
아래와 같이 에러가 두가지 있을 경우, 첫번째 에러가 출력되는 것을 확인할 수 있습니다.
두번째 except문의 경우 에러가 발생하면 ‘0으로 나누었습니다’ 라는 메세지를 출력하도록 했습니다.
try:
a =[1]
print(a[3])
4/0
except IndexError as e:
print(e)
except ZeroDivisionError:
print('0으로 나누었습니다.')
결과값: list index out of range
두 에러 이름을 묶어서 한번에 처리해줄 수도 있습니다.
try:
a =[1]
print(a[3])
4/0
except (IndexError, ZeroDivisionError):
print('Hello Error')
결과값: Hello Error
try, except문에서 사용할 수 있는 에러의 종류 확인할 수 있는 사이트:
'Python' 카테고리의 다른 글
파이썬 - 피보나치 함수 / 프로젝트 오일러 2번 문제 (0) | 2022.03.17 |
---|---|
파이썬 - 정규표현식 (메타 문자/ 메서드) (0) | 2022.03.16 |
파이썬 - random 함수 (0) | 2022.03.16 |
파이썬 - 내장 함수 (enumerate/ filter / map/ zip) (0) | 2022.03.02 |
파이썬 - for문 / range (0) | 2022.02.23 |