gpt4 book ai didi

运行 try 和 except 的 Python 3 错误处理

转载 作者:行者123 更新时间:2023-11-28 22:29:15 25 4
gpt4 key购买 nike

我试图通过让 SMTPlib 库在遇到这样的错误时发送电子邮件来在 Python 3 脚本中实现错误处理。

if value.isdigit() :
print ("Value is an integer")
else :
try:
server = smtplib.SMTP(email_server, email_port)
server.ehlo()
server.starttls()
server.login(email_login, email_pass)
server.sendmail("me@example.com", "me@example.com", message)
server.close()
sys.exit()
except:
print ("Error - Was unable to send email")
sys.exit()

如果值为整数,则此方法正常工作,但如果不是,则会正确发送电子邮件,但错误消息也会打印到屏幕上。

为什么我的脚本也在运行 except 部分?

最佳答案

sys.exit 是通过引发异常来实现的。当 server.close 之后调用 sys.exit 时,将捕获 SystemExit 异常。

这里有一个小证据:

import sys 

try:
print("hello")
sys.exit()
except:
print("exception!")

没有遵守异常处理的基本规则。至少应该使用 except Exception:。更好的 except Exception as err: 记录或打印 err。最好的方法是只处理源自 try/except 保护的 SMTP 事务的异常。

关于运行 try 和 except 的 Python 3 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188246/

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