[Python] 예외 처리
- 파이썬(Python)
- 2022. 2. 8. 19:08
참조
소개
- 파이썬을 공부해야 할 일이 생겨서, 위키독스에 올라와 있는 점프 투 파이썬 내용을 보면서 파이썬 공부한 내용을 기록합니다.
- 보다 자세한 내용은 점프 투 파이썬 해당 사이트에 가셔서 더 깊게 확인하실 수 있습니다.
파이썬 오류 예외 처리 기법
try, except 문
- 다음은 오류 처리를 위한 try, except 문의 기본 구조입니다.
try:
...
except [발생 오류[as 오류 메시지 변수]]:
...
- try 블록 수행 중 오류가 발생하면 except 블록이 수행됩니다.
- 하지만 try 블록에서 오류가 발생하지 않는다면 except 블록은 수행되지 않습니다.
- except 구문을 자세히 살펴 봅니다.
except[발생 오류[as 오류 메시지 변수]]:
- 위 구문을 보면 [] 기호를 사용하는데, 이 기호는 괄호 안의 내용을 생략할 수 있다는 관례 표기법입니다.
- 즉 except 구문은 다음 3가지 방법으로 사용할 수 있습니다.
1. try, except 만 쓰는 방법
try:
...
except:
...
2. 발생 오류만 포함한 except 문
try:
...
except 발생 오류:
...
3. 발생 오류와 오류 메시지 변수까지 포함한 except문
try:
...
except 발생 오류 as 오류 메시지 변수:
...
try...finally
- try 문에는 finally 절을 사용할 수 있습니다.
- finally절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행됩니다.
- 보통 finally 절은 사용한 리소스를 close 해야 할 때에 많이 사용됩니다.
f = open('foo.txt', 'w')
try:
# 무언가를 수행한다.
finally:
f.close()
여러개의 오류처리하기
- try문 안에서 여러 개의 오류를 처기하기 위해 다음 구문을 사용합니다.
try:
...
except 발생 오류1:
...
except 발생 오류2:
...
- 즉 0 으로 나누는 오류와 인덱싱 오류를 다음과 같이 처리할 수 있습니다.
try:
a = [1,2]
print(a[3])
4/0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except IndexError:
print("인덱싱 할 수 없습니다.")
- a는 2개의 요솟값을 가지고 있기 때문에 a[3]는 IndexError를 발생시키므로 "인덱싱할 수 없습니다."라는 문자열이 출력될 것입니다.
- 인덱싱 오류가 먼저 발생했으므로 4/0으로 발생되는 ZeroDivisionError 오류는 발생하지 않았습니다.
- 다음과 같이
ZerroDivisionError
와IndexError
를 함께 처리할 수도 있습니다.
try:
a = [1,2]
print(a[3])
4/0
except (ZeroDivisionError, IndexError) as e:
print(e)
- 2개 이상의 오류를 동일하게 처리하기 위해서는 위와 같이 괄호를 사용하여 함께 묶어 처리하면 됩니다.
728x90
'파이썬(Python)' 카테고리의 다른 글
[Python] 라이브러리 (0) | 2022.02.09 |
---|---|
[Python] 내장 함수 (0) | 2022.02.09 |
[Python] 클래스(Class) (0) | 2022.02.08 |
[Python] 함수(Function) (0) | 2022.02.05 |
[Python] for문 (0) | 2022.02.05 |
이 글을 공유하기