"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python의 '블록을 제외하고'외부의 예외에 액세스하는 방법은 무엇입니까?

Python의 '블록을 제외하고'외부의 예외에 액세스하는 방법은 무엇입니까?

2025-02-06에 게시되었습니다
검색:304

How to Access Exceptions Outside the `except` Block in Python?

Python에서 예외 처리 및 가변 범위를 Python에서 명명 된 예외를 사용하면 Nameerror 또는 UnboundLocalError와 같은 오류가 발생할 수 있습니다. 제외 블록 외부의 예외에 액세스하십시오. 이 동작은 시도 명령문 내에서의 제한 예외의 명시 적 범위에서 발생합니다.

Python 3에서는 제외한 절의 끝에 스택 프레임이있는 순환 참조로 인한 우발적 인 메모리 누출을 방지하기 위해 제외 예외가 자동으로 지워집니다. . 따라서 예외는 나중에 액세스하려면 다른 이름으로 할당해야합니다. Exc = Exc와 같은 과제로는 충분하지 않습니다.

Python 2에서는 트레이스 백 참조가 없기 때문에이 청소가 필요하지 않았습니다. 그러나 Python 2에서도 원형 참조를 피하는 것에 대한 경고가있었습니다.

이 문제를 해결하려면 두 가지 옵션이 있습니다. 한 가지 접근 방식은 제외 블록 내에서 예외를 별도의 이름으로 다시 바꾸어이 새 이름이 시도 문의 범위에 있지 않도록하는 것입니다.

시도 : try : 예외 제기 ( "foo") E로 예외를 제외하고 : my_exception = e

try:
    raise Exception("foo")
except Exception as e:
    my_exception = e

try : 예외 제기 ( "foo") E로 예외를 제외하고 : exc = e exc .__ traceback__ = none

try:
    raise Exception("foo")
except Exception as e:
    exc = e
    exc.__traceback__ = None
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3