HOWTO · Python

Python에서 예외 없이 시도

이 튜토리얼은 예외를 처리하지 않고 try 및 except를 사용하는 방법을 보여줍니다.

Python의 예외는 코드 실행 중에 감지된 오류입니다. 다른 유형의 예외는 NameError, TypeError, ZeroDivisionError, OSError 등입니다.

Python의 try 문은 예외에 대한 코드 블록을 테스트하는 데 사용되며 except 문은 이러한 예외를 처리하는 데 사용됩니다. try 블록의 코드에서 오류가 발생하면 except 블록의 코드가 실행됩니다.

KeyboardInterrupt, SystemExitGeneratorExit를 포함한 모든 예외를 포착할 수 있습니다. 이 방법은 일반적인 명령문이고 모든 사소한 버그를 숨길 것이기 때문에 예외를 처리하는 데 사용해서는 안 됩니다.

파이썬에서 except 없이 try 블록을 사용하는 방법에 대해 논의할 것입니다. 이를 달성하려면 예외를 무시해야 합니다.

except 없이 try 블록을 가질 수 없기 때문에 except 블록에 코드가 들어가지 않도록 예외를 무시하고 except 블록에 pass 문을 지정하는 방법밖에 없다. pass 문은 코드 빈 줄에 해당합니다.

finally 블록을 사용할 수도 있습니다. 예외 발생 여부에 관계없이 코드를 실행합니다.

try:
    a = 1 / 0
except:
    pass
finally:
    print("Example")

출력:

Example

위의 코드에서 try 블록에서 오류가 발생하면 except 블록은 발생한 예외를 인쇄합니다.

예외를 무시하려면 contextlib 모듈의 suppress() 함수를 사용하여 Python에서 예외를 처리할 수 있습니다.

contextlib 모듈의 suppress() 함수는 매우 구체적인 오류를 억제하는 데 사용할 수 있습니다. 이 방법은 Python 3에서만 사용할 수 있습니다.

예를 들어,

from contextlib import suppress

with suppress(IndexError):
    a = [1, 2, 3]
    a[3]

위의 예에서는 IndexError가 발생하지 않습니다.