python捕捉线程异常_如何捕捉python中发生的异常线程。线程执行?

基本上,当线程中发生未处理的异常时,我希望使用Djangomail_admins接收电子邮件。目前,我有一个处理post请求的视图,它看起来像:import threading

# ...

def post(self, request, *args, **kwargs):

# Some stuff...

for message in entry['messaging']:

t = threading.Thread(

target=self.local_handler,

args=(message, page_id)

)

t.setDaemon(True)

t.start()

# Some more stuff

现在,当任何异常发生并且没有得到处理时,它将显示在服务器日志中。像这样:

^{pr2}$

有没有办法通过电子邮件接收这些回溯?

在我开始使用线程之前,我一直在接收电子邮件,但现在它已经不起作用了。在

编辑:

正如@ivan miljkovic在回答一个类似问题时建议的那样,这个解决方案对我很有效。在

所以,基本上我必须在线程函数中捕捉异常:import threading

from django.core.mail import mail_admins

# ...

def local_handler(self, message, page_id):

try:

# do stuff

except: # Any not handled exception will send an email with the traceback

import traceback

details = traceback.format_exc()

mail_admins('Background exception happened', details)

def post(self, request, *args, **kwargs):

# Some stuff...

for message in entry['messaging']:

t = threading.Thread(

target=self.local_handler,

args=(message, page_id)

)

t.setDaemon(True)

t.start()

# Some more stuff

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值