Python의 여러 예외
프로그래밍에서 예외는 프로그램의 정상적인 흐름을 방해하는 발생입니다. Python에서는 오류로 표시됩니다. 예외는 IndexError, KeyError 등과 같은 원인에 따라 다른 유형이 될 수 있습니다.
try
및except
블록을 사용하여 예외를 처리 할 수 있습니다. try
블록에는 예외를 발생시킬 수있는 일부 코드가 포함되어 있으며 예외가 발생하면except
블록에 대체 코드를 지정할 수 있습니다.
예를 들면
try:
print(5 / 0)
except:
print(5 / 1)
출력:
5
5/0
은 예외를 발생시켜except
블록의 코드를 실행합니다.
raise
키워드를 사용하여 수동으로 예외를 발생시킬 수 있습니다.
파이썬에서 여러 예외를 다룰 수도 있습니다. 우리는 Python에 다른 유형의 예외가 있다는 것을 알고 있으므로 다른 예외에 대해 여러 개의except
문을 가질 수 있습니다.
예를 들면
try:
raise ValueError()
except ValueError:
print("Value Error")
except KeyError:
print("Key Error")
출력:
Value Error
하나의except
문으로 여러 예외를 포착 할 수도 있습니다. 이러한 방법은 아래에서 설명합니다.
여러 예외를 포착하기 위해 쉼표와 괄호 사용
이를 달성하는 첫 번째 방법은 예외를 쉼표로 구분하고 괄호 안에 넣는 것입니다. 다음 코드는 방법을 보여줍니다.
try:
raise ValueError()
except (ValueError, KeyError):
print("Error")
출력:
Error
괄호 안에 언급 된 예외가 발생하면이 블록의 코드가 실행됩니다. 예외 객체 (오류 객체라고도 함)에 이름을 지정할 수도 있습니다. e
는 오류 개체에 가장 일반적으로 사용되는 이름입니다. 예를 들면
try:
raise ValueError()
except (ValueError, KeyError) as e:
print("Error")
출력:
Error
as
키워드는 오브젝트 이름에 대한 별명을 작성합니다. Python 2.5 이하에서는 아래와 같이 쉼표를 사용하여 오류 객체의 이름을 간단히 분리하여as
키워드 사용을 제거 할 수있었습니다.
try:
raise ValueError()
except (ValueError, KeyError), e:
print("Error")
출력:
Error
여러 예외를 잡기 위해suppress()
함수 사용
contextlib
라이브러리는 여러 예외를 처리하는 데 사용할 수도있는suppress()
라는 매우 유용한 함수를 제공합니다.
이 함수는try
,except
및pass
문을 한 줄의 코드로 결합합니다. 예외 처리에도 사용되며 코드를 더 깨끗하고 읽기 쉽게 만드는with
문과 함께 사용됩니다.
다음 코드는이 기능을 사용하는 방법을 보여줍니다.
from contextlib import suppress
with suppress(FileNotFoundError):
os.remove("somefile.tmp")
위의 코드는try
,except
및pass
문이있는 다음 프로그램과 동일합니다.
try:
os.remove("somefile.tmp")
except FileNotFoundError:
pass
pass
문은 아무것도 실행하지 않고 빈 코드에 대한 오류를 피하고 싶을 때 사용됩니다.
아래와 같이 여러 예외에 대해suppress
기능을 사용할 수 있습니다.
from contextlib import suppress
with suppress(FileNotFoundError, KeyError):
os.remove("somefile.tmp")
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn