예외 포착 및 처리는 Python의 오류 처리에 매우 중요합니다. 그러나 표준 오류 출력(stderr)에 인쇄될 포착되지 않은 예외는 어떻게 되나요?
항상 예외를 명시적으로 포착하고 처리하는 것이 좋지만 때로는 그렇게 할 수도 있습니다. 포착되지 않은 예외의 로깅을 자동화하는 데 편리합니다. try/exc 블록에 의존하는 대신 다음 솔루션을 사용하면 로깅이 자동으로 발생하도록 할 수 있습니다.
<code class="python">import sys import logging # Create a custom exception handler def handle_exception(exc_type, exc_value, exc_traceback): if issubclass(exc_type, KeyboardInterrupt): sys.__excepthook__(exc_type, exc_value, exc_traceback) return # Use the logging module to handle the uncaught exception logger = logging.getLogger(__name__) logger.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback)) # Replace the default exception handler with our custom one sys.excepthook = handle_exception # Set up a logger and handler logger = logging.getLogger(__name__) handler = logging.StreamHandler(stream=sys.stdout) logger.addHandler(handler) # Raise an exception to test the custom exception handling if __name__ == "__main__": raise RuntimeError("Test unhandled")</code>
이 코드는 여러 작업을 수행합니다.
이 접근 방식은 포착되지 않은 예외의 로깅을 자동화함으로써 오류 처리를 단순화하고 프로그램 실행 중에 발생하는 모든 예외를 포착 여부에 관계없이 검토할 수 있는 중앙 위치를 제공합니다. .
위 내용은 Python에서 포착되지 않은 예외를 자동으로 기록하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!