파이톤으로 except not in (A, B) 을 쓸 수 없습니까?
시도해 본 일
class MindError(Exception): pass
class BodyError(Exception): pass
try:
raise MindError("精神をもっと集中してください")
except not in (MindError, BodyError) as e:
raise e
# なにも raise されずに後続処理が行われることを期待
시운전의 결과는 다음과 같다.SyntaxError: invalid syntax
제대로 돌아가지 못했어요.그래서 이렇게 변해 봤어요.
class MindError(Exception): pass
class BodyError(Exception): pass
IGNORE_EXCEPTIONS = (MindError, BodyError)
def dosomething(error: Exception):
try:
raise error
except Exception as e:
if isinstance(e, IGNORE_EXCEPTIONS):
print(f"{type(e).__name__}が起きましたが無視します")
else:
raise e
출력을 확인합니다.>>> dosomething(ValueError("想定外の値です"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in dosomething
File "<stdin>", line 3, in dosomething
ValueError: 想定外の値です
>>> dosomething(MindError("精神をもっと集中してください"))
MindErrorが起きましたが無視します
아니오, 괜찮아요. 이런 느낌도 괜찮아요.
class MindError(Exception): pass
IGNORE_EXCEPTIONS = (MindError, BodyError)
def dosomething(error: Exception):
try:
raise error
except IGNORE_EXCEPTIONS as e:
print(f"{type(e).__name__}が起きましたが無視します")
except Exception as e:
# なにかしたいことをする
raise e
Reference
이 문제에 관하여(파이톤으로 except not in (A, B) 을 쓸 수 없습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/peketamin/articles/9c2bb594b0b21d8da03d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)