Python/Python 중급

Python 파이썬 TryExcept문

독학코딩 2021. 11. 27. 09:37
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬의 try except문에 대해서 배워보겠습니다. try except문은 시도, 예외라는 의미로 try 아래의 코드를 실행해보고 오류가 생긴다면 except 아래의 코드를 실행하는, 오류를 컨트롤하는 가장 간단한 문법 중 하나입니다.

if문
    if A == B: 
        print(B)
    elif A == C:
        print(C)
    else:
        print(D)

for문
    for i in range(10):
        print(i)

while문
    a = 0
    while a < 10:
        print(a)
        a += 1

try-except문
    try:
        print(a)
    except:
        print("a in not defined")

 

 


Python try except문의 기본형태

파이썬의 try except문은 아마도 에러를 처리하는 가장 간단하고 강력한 기능이 아닐까 합니다. 많이 사용하게 될 수도 있구요. 파이썬에 더 익숙해지신다면 try except문을 최대한 안쓰시려고 노력할 수도 있습니다.

try:
    print(a)
except:
    print("a is not define")

위의 예제처럼 print(a)를 하려고 try, 시도하지만 a가 정의 되지 않았기 때문에 에러가 나고, 에러가 가면 except문 안의 코드를 실행하는 것입니다. 

a = "something"
try:
    print(a)
except:
    print("a is not define")

어떤 결과가 출력되는지 이렇게도 한번 실행해보시겠어요? 그러면 try except문을 이해하는데 도움이 되실 겁니다.

 

 

Python try except문의 특정 오류 처리

모든 에러에서 말고 특정 에러에서만 except문을 실행하고 싶다면 어떻게 해야될까요? 

try:
    print(a)
except NameError:
    print("a is not define")

위 와같이 except 뒤에 처리할 예외의 종류를 작성하시면 해당 오류가 발생햇을 때만 except 아래의 코드를 실행하게 됩니다. 

ValueError
IndexError
SyntaxError
TypeError
NameError
AttributeError
KeyError
ZeroDivisionError
FileNotFoundError

파이썬 예외의 종류는 정말 많습니다만 위에 조금의 예를 보여드립니다. 파이참에 Error 라고 입력해보시면 자동완성에서 더 많은 에러의 예를 보실 수 있으실겁니다. 

 

 

Python try except문의 복수형태

try except에서는 복수의 형태도 존재합니다. except를 여러번 사용할 수 있다는 의미인데요. 

b = [1, 2]
try:
    print(b[3])
except NameError:
    print("b is not define")
except IndexError:
    print("b index out of range")

위 처럼 except를 여러번 사용하여 발생한 에러의 종류에 따라 어떤 코드를 실행할지 분류할 수 있습니다. 

 

Python try except문의 완료형태

파이썬 try except의 완료형태는 finally입니다. try로 시도를 하고 에로가 나면 except를 실행하고 마지막으로 finally를 실행하는 것 입니다.

b = [1, 2]
try:
    print(b[3])
except NameError:
    print("b is not define")
except IndexError:
    print("b index out of range")
finally:
    print("코드 실행이 종료됩니다.")

위와 같은 방식입니다. finally는 except에서 에러를 처리한 이후에 더 무언가를 실행해야 될 때 사용됩니다.

 

 

Python try except문의 else 사용

try except문을 사용하기는 했는데, 에러가 발생하지 않았을 때는 어떻게 해야 될까요? 파이썬의 try except에서 else를 사용하는 것입니다. 

b = [1, 2, 3, 4]
try:
    print(b[3])
except NameError:
    print("b is not define")
except IndexError:
    print("b index out of range")
else:
    print("에러가 발생하지 않았습니다.")
finally:
    print("코드 실행이 종료됩니다.")

if문에서의 else는 if의 조건에 맞지 않으면 실행되는 조건이었습니다. 그러면 try의 조건은 무엇일까요? 에러이냐 아니야 입니다. 에러이면 except, 에러가 아니면 else가 실행된다고 생각하시면 됩니다.

 

오늘은 파이썬의 try except문에 대해서 배워보았습니다. 이로서 파이썬의 중급 과정도 모두 완료되었습니다. 이제 우리는 파이썬의 모듈에 대해서 하나씩 살펴보도록 하겠습니다.

반응형