Python에서 예외 무시

Vaibhhav Khetarpal 2023년10월10일
  1. Python의 except 블록에서 pass 문 사용
  2. Python의 except 블록에서 sys.exc_clear() 문 사용
Python에서 예외 무시

예외는 발생했을 때 프로그램의 흐름을 변경하는 이벤트입니다.

예외는 프로그램이 구문상 올바르지만 여전히 코드 실행에 오류가 발생하기 때문에 발생합니다. 이 오류는 프로그램 실행을 중단시키는 것이 아니라 프로그램의 기본 흐름을 변경합니다.

Python에서는 try...except 블록을 사용하여 예외를 처리합니다. 이 자습서에서는 예외를 무시하고 Python에서 코드를 진행하는 몇 가지 방법에 대해 설명합니다.

Python의 except 블록에서 pass 문 사용

pass 문은 Python 프로그래밍에서 자리 표시자로 간주될 수 있습니다. NULL 문을 반환하므로 값을 생성하지 않습니다. 그러나 Python 인터프리터는 pass 문을 무시하지 않으며 해당 문을 사용하는 빈 코드에 대한 오류가 발생하지 않도록 합니다.

pass 문이 try...except 문에 사용되면 단순히 오류를 전달하고 Python 프로그램의 흐름을 변경하지 않습니다.

다음 코드는 except 블록의 pass 문을 사용하여 예외를 무시하고 Python에서 코드를 계속 진행합니다.

try:
    print(hey)
except Exception:
    pass

print("ignored the exception")

위의 코드는 다음 출력을 제공합니다.

ignored the exception

이 함수는 Python 3 이상에서 항상 작동하지만 pass 문을 사용하는 것은 나쁜 프로그래밍 방식으로 간주됩니다. 프로그램 중에 발생할 수 있는 오류에 대한 솔루션을 제공하지 않습니다. 게다가, 주어진 프로그램에서 오류를 식별하는 것은 모든 단일 오류를 무시하기 때문에 훨씬 더 어렵습니다.

Python의 except 블록에서 sys.exc_clear() 문 사용

Python 2에서 마지막으로 발생한 예외는 인터프리터에 의해 기억되지만 최신 버전의 Python에서는 발생하지 않습니다. 따라서 Python 3 이후 릴리스된 버전에서는 sys.exc_clear() 문이 필요하지 않습니다. sys.exc_clear() 문은 Python 인터프리터에서 마지막으로 throw된 예외를 지우는 데 사용할 수 있습니다.

다음 코드는 except 블록의 sys.exc_clear() 문을 사용하여 예외를 무시하고 Python에서 코드를 진행합니다.

try:
    print(hey)
except Exception:
    sys.exc_clear()

print("ignored the exception")

이 두 가지 방법으로 프로그램을 오류 없이 실행할 수 있지만 프로그램의 모든 오류를 무시하는 것은 권장되지 않습니다. 그러나 특정 오류나 일부 오류만 무시하는 것은 대부분의 프로그래머가 정상적인 프로그램을 위해 수행하는 관행입니다.

프로그램에서 pass문과 sys.exc_clear()문의 사용을 제한하면 프로그램의 가독성과 오류 식별도 향상됩니다.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

관련 문장 - Python Exception