python中的php set_error_handler等效函数

时间:2013-02-06 11:16:35

标签: php python error-handling python-3.x

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

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

5 个答案:

答案 0 :(得分:1)

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

或许您可以尝试我写的库diagnostics。它不支持电子邮件,但可以随意打开您的提案或发送拉取请求的问题:)

答案 1 :(得分:0)

AFAIK Python主要使用异常来处理错误,因此您应该尝试捕获它们而不是使用像set_error_handler这样的构造。 做这样的事情:

try:
    code that might fail...
except:
    handle errors...

答案 2 :(得分:0)

有关用于处理警告的python库,请参阅warnings,警告也链接到日志记录库中的captureWarnings

然而,大多数其他问题都被视为异常,您可以根据需要尝试捕获。

答案 3 :(得分:0)

使用Python异常处理机制(try/except)代替。它更灵活,更细腻;您可以捕获仅由一行代码引起的错误(例如IOError,因为找不到文件),或整个程序中的错误(如set_error_handler)。

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

import cgitb
cgitb.enable()

答案 4 :(得分:0)

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