registrando exceções não capturadas em python: liberar potencial de registro além do stderr
lidar com as exceções não capturadas de uma maneira conveniente e informativa é crucial para suspensão e depuração e manutenção da correção. Embora seja prudente capturar e lidar com exceções explicitamente, há cenários em que a automação desse processo pode ser altamente benéfica. Este artigo explora uma abordagem inovadora para registrar exceções não capturadas através do versátil módulo de registro. Isso permite que os desenvolvedores centralizem o manuseio de exceções, eliminem mensagens ruidosas e forneçam mais contexto para a depuração. Para a variável global sys.ExcepThook, responsável por lidar com exceções não capturadas no intérprete Python. Análise. e filtrando exceções conforme desejado. importar log logger = logging.getLogger (__ name__) manipulador = logging.streamHandler (stream = sys.stdout) Logger.addhandler (manipulador) def handle_exception (exc_type, exc_value, exc_traceback): Se Issubclass (exc_type, keyboardInterrupt): sys .__ Excepthook __ (exc_type, exc_value, exc_traceback) retornar Logger.error ("Exceção não capturada", exc_info = (exc_type, exc_value, exc_traceback)) sys.ExcepThook = handle_exception # Exemplo de uso Se __name__ == "__main__": Aumentar o RuntimeError ("Test Untleled")
Neste exemplo, o RuntimeError não capturado é registrado como uma mensagem de erro no fluxo STDOUT, permitindo fácil depuração e análise. Essa abordagem pode ser estendida adicionando diferentes manipuladores ao objeto Logger para redirecionar o registro de exceção para vários destinos, como arquivos ou bancos de dados. Ao utilizar efetivamente o log para o manuseio de exceções não capturadas, os desenvolvedores podem aprimorar significativamente os recursos de depuração e simplificar a manutenção do aplicativo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3