[TIL] 파이썬 예외처리

고은정·2021년 5월 11일
2

TIL

목록 보기
21/31
post-thumbnail
post-custom-banner

예외처리

이 포스팅은 파이썬의 예외처리 방법을 다루며, 점프 투 파이썬에서 많은 도움을 얻어 작성했습니다.

좋은 개발자는 예외처리를 잘하는 개발자👏

예외는 항상 우리가 예상하지 못한 부분에서 발생한다. 서비스 테스트중에, 동작중에 생각하지 못한 예외로 에러가 발생한다면 붉은 에러메시지가 출력되면서 서비스가 멈출 수 있다.
예외처리를 활용해서 좋은 개발자가 되어보자!

파이썬 예외처리 방법

try, except문

기본 구조는 다음과 같다.

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

오류 발생 여부와 상관없이 수행하고자 하면 finally 하위에 사용한다.

try:
    ...
except:
	...
finally:
    ...

예제는 다음과 같다.

f = open('foo.txt', 'w')
try:
   print('open~~')
finally:
    f.close()

오류가 없을 경우 수행되는 else

오류가 없을 경우에 수행하고자 하면 else 하위에 사용한다.

try:
    ...
except [발생 오류[as 오류 메시지 변수]]:
    ...
else:
    ...

예제는 다음과 같다.

try:
    age=int(input('나이를 입력하세요: '))
except:
    print('입력이 정확하지 않습니다.')
else:
    if age <= 18:
        print('미성년자는 출입금지입니다.')
    else:
        print('환영합니다.')

오류 회피 pass

발생한 오류를 회피하고 통과시키고 싶으면 다음과 같이 pass를 작성한다.

try:
    f = open("없는파일", 'r')
except FileNotFoundError:
    pass
profile
개발이 하고싶어요
post-custom-banner

0개의 댓글