是否可以在python中注册自定义错误处理程序 - 如PHP中的http://php.net/set_error_handler? 我想从我的代码中的任何地方触发错误,然后收到关于它的电子邮件通知(以及日志记录,以及我需要在处理程序中实现的任何其他内容) - 我在PHP中使用了这样的模式。
也许我不太了解python的概念(因为我是python中的新手)。谢谢你的帮助。
答案 0 :(得分: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.")
现在我们使用自定义消息获取自定义异常