>백엔드 개발 >파이썬 튜토리얼 >Python에서 원래 호출 스택을 유지하면서 예외를 확인하고 다시 발생시키는 방법은 무엇입니까?

Python에서 원래 호출 스택을 유지하면서 예외를 확인하고 다시 발생시키는 방법은 무엇입니까?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB앞으로
2024-02-08 21:42:14586검색

在 Python 中,如何在维护原始调用堆栈的同时检查然后重新引发异常?

질문 내용

특정 예외 유형을 포착하고 예외의 메시지를 확인하여 그것이 실제로 내가 포착하고 싶은 예외인지 확인하고, 그렇지 않은 경우 예외를 다시 발생시키는 상황에 부딪혔습니다.

으아악

잘 작동하지만 문제가 있습니다. 예외를 다시 발생시키는 경우 이제 예외는 원래 예외가 발생한 위치가 아니라 다시 발생시킨 줄(예: raise e )에서 발생합니다. 원래 예외가 발생한 위치를 알고 싶기 때문에 이는 디버깅에 적합하지 않습니다.

제 질문은: 원래 예외 위치를 유지하면서 예외를 포착한 후 다시 던지거나 "전달"할 수 있는 방법이 있습니까?

참고: 실제로 무슨 일이 일어나고 있는지 궁금하다면: 저는 "실제"(내 응용 프로그램의 관점에서) 예외가 발생하기를 원하는 __import__ 动态导入一些模块。我正在捕获 importerror 来优雅地处理任何这些模块不存在的情况。但是,如果这些模块本身包含引发 importerror 의 가져오기 문을 사용하고 있습니다. 그리고 도구가 디버깅하는 원래 위치에서 참여하고 있습니다.


정답


이렇게 하세요:

으아악

대신 raise e。请参阅关于引发异常的教程部分,以及raise. 예외 발생 raise 문에 대한 언어 참조

: 🎜

위 내용은 Python에서 원래 호출 스택을 유지하면서 예외를 확인하고 다시 발생시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제