특정 예외 유형을 포착하고 예외의 메시지를 확인하여 그것이 실제로 내가 포착하고 싶은 예외인지 확인하고, 그렇지 않은 경우 예외를 다시 발생시키는 상황에 부딪혔습니다.
으아악잘 작동하지만 문제가 있습니다. 예외를 다시 발생시키는 경우 이제 예외는 원래 예외가 발생한 위치가 아니라 다시 발생시킨 줄(예: raise e
)에서 발생합니다. 원래 예외가 발생한 위치를 알고 싶기 때문에 이는 디버깅에 적합하지 않습니다.
제 질문은: 원래 예외 위치를 유지하면서 예외를 포착한 후 다시 던지거나 "전달"할 수 있는 방법이 있습니까?
참고: 실제로 무슨 일이 일어나고 있는지 궁금하다면: 저는 "실제"(내 응용 프로그램의 관점에서) 예외가 발생하기를 원하는 __import__
动态导入一些模块。我正在捕获 importerror
来优雅地处理任何这些模块不存在的情况。但是,如果这些模块本身包含引发 importerror
의 가져오기 문을 사용하고 있습니다. 그리고 도구가 디버깅하는 원래 위치에서 참여하고 있습니다.
이렇게 하세요:
으아악 대신 raise e
。请参阅关于引发异常的教程部分,以及raise
. 예외 발생 및 raise
문에 대한 언어 참조
위 내용은 Python에서 원래 호출 스택을 유지하면서 예외를 확인하고 다시 발생시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!