지난 시간까지 relative 패키지가 어떤 건지 알아보고 예외 처리에 대해 간단히 살펴봤습니다.
이번 포스팅에서는 예외 처리 상황과 대처 방법에 대해 알아보도록 하겠습니다.
파이썬 예외 처리 #2
예외 처리 상황과 대처 방법
0 으로 나누기. ZeroDivisionError
사칙연산 중에 나누기 를 할 때 이전의 예에서도 여러번 접해봤지만
0으로 나누는 경우에는 ZeroDivisionError 를 만나는 경우를 봤었습니다.
프로그래밍 중에 나누기가 들어간다면 꼭 확인하고 넘어가야 하는게 0 으로 나누기 를 하는 경우입니다.
정말 자주 발생하는 오류 중에 하나입니다.
>>> 3/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>>
위 코드에서는 3 을 0 으로 나누려 해봤습니다.
바로 ZeroDivisionError 오류가 발생 하게 됩니다.
IndexError
자주 발생하는 오류 중에 하나입니다.
>>> a = [1, 2, 3]
>>> a[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>>
a 라는 리스트에는 [1, 2, 3]의 값이 저장되어 있습니다.
이전에 공부해 봤던 것처럼 파이썬에서 주소는 0 부터 시작을 하게 됩니다.
여기서 a[4] 는 실제로 a 라는 리스트의 주소 중 다섯 번째 주소를 의미합니다.
a 리스트에는 3개의 값만이 할당이 되어 있기 때문에 a[4] 는 나올 수가 없는 값입니다.
결국 IndexError 오류가 발생하게 됩니다.
이런 오류가 발생하게 되면 파이썬은 실행 중이던 프로그램을 중단을 하고 그에 맞는 오류 메세지를 보여 주게 됩니다.
오류 처리 예외 기법
원활한 프로그램을 작성하기 위해서는 오류 처리 방법을 잘 알아야 합니다.
try, except 문
try, except 문은 오류를 처리 하기 위한 예외 기법으로 많이 사용을 하고 있습니다.
아래는 try, except 문의 기본적인 구조입니다.
try:
...
except [발생하는 오류 [as 오류 변수]]:
try 문장 수행을 하던 도중 만약 오류가 발생을 하게 되면 except 문장으로 가게 됩니다.
만일 try 문장을 수행을 하던 도중 오류가 발생하지 않는 다면 except 문장은 실행이 되지 않습니다.
except 문장의 구조를 살펴 보겠습니다.
except[발생오류 [as 오류 변수]]:
위 except 문의 구조를 보시다 시피 [] 기호를 사용하게 됩니다.
이 [](대괄호) 기호는 괄호 안의 내용을 생략할 수 있다는 관례적인 표기법입니다.
따라서 아래 처럼 except 문은 3 가지로 사용 할 수가 있습니다.
1. try, except 만 사용하기
try:
...
except 발생 오류:
...
이런 경우에는 오류와 상관없이 오류가 발생 하게 되면 except 블록을 수행 하게 됩니다.
2. 발생 오류만 포함하는 except 문
try:
...
except 발생오류:
...
위 같은 경우에는 오류가 발생할 경우에 except 문에 미리 정해 놓은 오류와 동일한 오류일 경우에만 except 블록을 수행한다는 뜻입니다.
3. 발생 오류와 오류 변수까지 포함한 except 문
try:
...
except 발생 오류 as 오류 변수:
...
이런 경우에 오류의 내용까지 알고 싶을 때 사용하는 방법입니다.
아래 코드를 살펴 보겠습니다.
try:
5 / 0
except ZeroDivisionError as e:
print(e)
이전에 ZeroDivisionError 오류가 발생하는 경우를 살펴봤는데 위 코드처럼 except 문에 ZeroDivisionError 오류가 발생할 경우에 예외 처리를 하게 되면 ZeroDivisionError 오류가 발생을 하게 되면 except 문장이 실행이 되고 오류 변수 e 에 담기게 되는 오류 메시지를 출력을 할 수 있게 됩니다.
출력한 오류 메시지입니다.
division by zero
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
