이 포스팅은 파이썬의 예외처리 방법을 다루며, 점프 투 파이썬에서 많은 도움을 얻어 작성했습니다.
예외는 항상 우리가 예상하지 못한 부분에서 발생한다. 서비스 테스트중에, 동작중에 생각하지 못한 예외로 에러가 발생한다면 붉은 에러메시지가 출력되면서 서비스가 멈출 수 있다.
예외처리를 활용해서 좋은 개발자가 되어보자!
기본 구조는 다음과 같다.
try:
...
except [발생 오류[as 오류 메시지 변수]]:
...
try 블록 수행 중 오류가 발생하면 except 블록이 수행된다.
특정한 예외에 대해서 처리하기 위해서 다음과 같이 사용한다.
try:
...
except 발생 오류 as 오류 메시지 변수:
...
예제는 다음과 같다.
try:
4 / 0
except ZeroDivisionError as e:
print(e)
여러개의 예외에 대해 처리하기 위해서 다음과 같이 사용한다.
try:
...
except 발생 오류1:
...
except 발생 오류2:
...
예제는 다음과 같다.
try:
a = [1,2]
print(a[3])
4/0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except IndexError:
print("인덱싱 할 수 없습니다.")
오류 발생 여부와 상관없이 수행하고자 하면 finally 하위에 사용한다.
try:
...
except:
...
finally:
...
예제는 다음과 같다.
f = open('foo.txt', 'w')
try:
print('open~~')
finally:
f.close()
오류가 없을 경우에 수행하고자 하면 else 하위에 사용한다.
try:
...
except [발생 오류[as 오류 메시지 변수]]:
...
else:
...
예제는 다음과 같다.
try:
age=int(input('나이를 입력하세요: '))
except:
print('입력이 정확하지 않습니다.')
else:
if age <= 18:
print('미성년자는 출입금지입니다.')
else:
print('환영합니다.')
발생한 오류를 회피하고 통과시키고 싶으면 다음과 같이 pass를 작성한다.
try:
f = open("없는파일", 'r')
except FileNotFoundError:
pass