我有一个按计划运行的Python脚本,我已经设置了一个try/except
块来捕获所有异常,并通过电子邮件向我发送异常消息,以便我可以知道出现了问题。
我正在观察一些奇怪的行为。对于我的脚本的每次执行,都会在消息所在的位置捕获异常:
93
当我将其打印到控制台时,此内容也是相同的。
当我删除try/except
块时,我的代码没有抛出任何异常。有谁知道为什么try/except
块的存在导致异常以及为什么它只是返回数字?
try:
#do something
except Exception as ex:
s = smtplib.SMTP('000.000.000.000',25)
s.starttls()
s.sendmail('email@email.com', 'email@email.com', 'General Exception in final_parse method ' + str(ex.message))
print str(ex.message)
s.quit()
答案 0 :(得分:0)
这取决于你在尝试中做了什么。在该代码中创建并引发异常。可以将例外消息设置为93或其他任何内容。
尝试在调试器中评估整个异常,或者逐步执行您在try中运行的代码,直到获得异常,并查看创建/引发它的上下文。这至少可以让您了解代码/模块在失败时正在做什么。
我的猜测是,在try中运行的代码没有很好地编写或维护。尝试使用其他模块,或在此处发布有关它的更多详细信息。
更新
如果你的堆栈跟踪给你KeyError,那么你正在执行的代码就会抛出一个KeyError异常,它不会被代码中更深层次的except块处理,这意味着它将被解析为'写得不好或使用不当。这个问题很可能发生在您的“做某事”
中答案 1 :(得分:0)
您应该使用Yagmail,而不是使用smtplib.SMTP。它更容易使用:
import yagmail
yag = yagmail.SMTP(username, password)
yag.send(emailto, subject = "I now can send an attachment", contents = fileToSend)