0

python 3 中是否有与 PHP 的set_error_handler函数等效的函数?在 python 脚本中使用这个等价物是个好主意还是有更好的解决方案?

我喜欢 set_error_handler 的地方在于,我可以为它分配一个功能,例如在出现问题时记录和/或通过电子邮件发送给我。然后我可以在我的代码中使用 trigger_error,error_handler 函数将向我报告发生了什么以及发生在哪里。任何想法如何在python中替换它?

4

5 回答 5

1

我认为您正在搜索sys.excepthook。它也被cgitb模块使用。

或者你可以试试我写的库诊断。它尚不支持电子邮件,但请随时为您的提案打开一个问题或发送拉取请求:)

于 2013-11-14T21:22:24.220 回答
0

AFAIK Python uses mainly exceptions to handle errors and thus you should try to catch them instead of using a construct like set_error_handler. Do something like this:

try:
    code that might fail...
except:
    handle errors...
于 2013-02-06T12:45:38.337 回答
0

请参阅用于处理警告的 python 库的警告,该库还链接到日志库中的captureWarnings

然而,大多数其他问题都作为异常抛出,您可以尝试并在您认为合适的时候捕获它们。

于 2013-02-06T12:47:18.667 回答
0

import cgitb() cgitb.enable() 对于 CGI 使用,也可以使用 cgitb 模块,它会打印出非常详细的错误信息以供调试使用:

于 2013-02-06T12:51:58.890 回答
0

请改用 Python 异常处理机制 ( try/except)。它更加灵活和细粒度;您可以捕获仅由一行代码引起的错误(例如,IOError因为未找到文件),或者来自整个程序的错误(就像set_error_handler那样)。

对于 CGI 使用,您还可以使用该cgitb模块,该模块将打印出非常详细的错误消息以供调试使用:

import cgitb
cgitb.enable()
于 2013-02-06T12:48:33.363 回答