본문 바로가기
파이썬

파이썬 한 줄에 여러 예외 포착 (블록 제외)

by º기록 2020. 9. 30.
반응형

나는 내가 할 수 있다는 것을 안다.

try:
    # do something that may fail
except:
    # do this if ANYTHING goes wrong

나는 또한 이것을 할 수있다 :

try:
    # do something that may fail
except IDontLikeYouException:
    # say please
except YouAreTooShortException:
    # stand on a ladder

그러나 두 가지 예외 내에서 동일한 작업을 수행하려면 지금 생각할 수있는 최선의 방법은 다음과 같습니다.

try:
    # do something that may fail
except IDontLikeYouException:
    # say please
except YouAreBeingMeanException:
    # say please

다음과 같이 할 수있는 방법이 있습니까 (두 예외 모두에서 취할 조치는 제발 입니다).

try:
    # do something that may fail
except IDontLikeYouException, YouAreBeingMeanException:
    # say please

이제 다음 구문과 일치하므로 실제로 작동하지 않습니다.

try:
    # do something that may fail
except Exception, e:
    # say please

따라서 두 가지 예외를 포착하려는 노력은 정확히 이루어지지 않았습니다.

이 작업을 수행하는 방법이 있습니까?

 

해결 방법

 


except 절은 여러 예외를 괄호로 묶은 튜플로 명명 할 수 있습니다. 예를 들면

except (IDontLikeYouException, YouAreBeingMeanException) as e:
    pass

또는 Python 2 전용 :

except (IDontLikeYouException, YouAreBeingMeanException), e:
    pass

쉼표를 사용하여 변수에서 예외를 분리하는 것은 Python 2.6 및 2.7에서 계속 작동하지만 이제 더 이상 사용되지 않으며 Python 3에서는 작동하지 않습니다. 이제 as 를 사용해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/6470428

 

 

반응형

댓글