gpt4 book ai didi

python - 更改 python 未处理异常的行为以发送电子邮件

转载 作者:行者123 更新时间:2023-11-30 23:45:22 24 4
gpt4 key购买 nike

我想更改 python 中未处理的异常(所有异常)的行为,以发送电子邮件,而无需大量更改代码或在各处使用特殊的错误处理程序。

我的希望是子类化 Exception,然后在给定模块的开头重新定义它。

所以子类在这里:

class ExceptionMailer(Exception):
def __init__(self, m):
self.message = m
send_email(email_address,self.message)

然后在模块的开头我可以这样做:

Exception = ExceptionMailer

然后,当引发异常时,将发送一封包含其消息的电子邮件。我已经让它严格适用于Exception,但不适用于ValueError。我希望重新定义 Exception 能够重新定义所有错误类型,但我显然错了。我想做的事情可能吗?

最佳答案

在您重新定义Exception时,它的所有子类都已创建,因此不会影响它们:

>>> class A(object):
def a(self):
print 'a in A'

>>> class B(A):
pass

>>> B().a()
a in A
>>> class C(object):
def a(self):
print 'a in C'

>>> A = C
>>> B().a()
a in A

关于你的问题。看看sys.excepthook 。它允许您在出现任何未捕获的异常时重新定义程序行为。

关于python - 更改 python 未处理异常的行为以发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9545399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com