为什么异常显示为数字



我有一个按计划运行的 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()

这取决于您在尝试中所做的工作。在该代码中创建并引发异常。可以将异常的消息设置为 93 或其他任何消息。

尝试在调试器中评估整个异常,或单步执行正在运行的代码,直到获得异常,并查看创建/引发异常的上下文。这至少会让你了解代码/模块在失败时在做什么。

我的猜测是try中运行的代码编写或维护得不好。尝试使用其他模块,或在此处发布有关它的更多详细信息。

更新:

如果您的堆栈跟踪为您提供了 KeyError,那么您正在执行的代码将抛出一个 KeyError 异常,该异常未由代码更深处的 except 块处理,这意味着它要么写得不好,要么使用不当。问题很可能出在您的"做某事"中

而不是使用smtplib。SMTP 你应该使用 Yagmail。它更易于使用:

import yagmail yag = yagmail.SMTP(username, password) yag.send(emailto, subject = "I now can send an attachment", contents = fileToSend)

最新更新