1

是否可以在 python 中注册自定义错误处理程序 - 如PHP中的http://php.net/set_error_handler ?我想从我的代码中的任何地方触发错误,然后收到有关该错误的电子邮件通知(和日志记录,以及我需要在处理程序中实现的任何其他内容) - 我在 PHP 中使用了这种模式。

也许我不太了解python的概念(因为我是python的新手)。感谢帮助。

4

1 回答 1

2

不确切知道 PHP 中的错误处理程序是什么,我将从 python 的角度来看这个

在 python 中,我们有例外,它们的名字叫例外。当出现问题或者我们期待其他事情或者我们只是想失败时,我们会抛出异常。可以在任何时候抛出异常,然后例如稍后捕获

a = 'int'
b = int(a)

将抛出异常,因为您无法将 'int' 转换为 int,因此现在使用异常处理来执行此操作

try:
    b = int("int")
except ValueError:
    print "can't do that" 

现在你注意到我们吞下了异常并继续执行程序,这并不总是最好的主意,有时我们可能想引发我们自己的异常并崩溃

class NotADecimalNumber(Exception): pass
try:
    b = int("a")
except ValueError:
    raise NotADecimalNumber("'a' is not a decimal number idiot.")

现在我们通过自定义消息获得自定义异常

于 2012-05-17T12:44:49.473 回答