python: Gibt es einen Nachteil für die Verwendung von Fehlerbehandlung?

8

Python 3.3 enthält ein Modul namens faulthandler , das hilfreiche Traceback-Informationen anzeigt, wenn ein segfault auftritt. (Für Python-Versionen vor 3.3 kann das Modul von PyPI bezogen werden .)

Das Modul ist standardmäßig nicht aktiviert. Es ist wie folgt aktiviert:

%Vor%

Diese Funktion ist sehr nützlich. Gibt es einen bestimmten Grund, dass es nicht standardmäßig aktiviert ist? Hat es negative Auswirkungen auf die Leistung?

    
Stuart Berg 12.02.2014, 16:34
quelle

1 Antwort

12
  

Diese Funktion ist sehr nützlich. Gibt es einen bestimmten Grund, warum es nicht ist?   standardmäßig aktiviert? Hat es negative Auswirkungen auf die Leistung?

Der Grund ist, dass sich Fehlerhandler den Dateideskriptor von stderr merkt, normalerweise fd 2. Das Problem ist, dass fd2 etwas anderes werden kann, wie ein Socket, eine Pipe, eine wichtige Datei usw. Es gibt keinen zuverlässigen Weg, dies zu erkennen In dieser Situation ist es sicherer, faulthandler in Python standardmäßig nicht zu aktivieren.

faulthandler ist in fast allen Fällen sicher, außer wenn ein durch den Fehlerhandler gespeicherter Dateideskriptor ersetzt wird. Problem auch im Dokument beschrieben: Ссылка

Hinweis: Ich habe einen Fehlerhandler geschrieben.

    
haypo 25.03.2015, 03:36
quelle

Tags und Links