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

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

WBOY
풀어 주다: 2024-02-08 21:42:14
앞으로
527명이 탐색했습니다.

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

질문 내용

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

으아악

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

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

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


정답


이렇게 하세요:

으아악

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

: 🎜

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

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿