我想实现误差通过获取图书馆的smtplib当遇到这样的错误,以发送电子邮件在Python 3脚本处理..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("[email protected]", "[email protected]", message)
server.close()
sys.exit()
except:
print ("Error - Was unable to send email")
sys.exit()
这如果值是一个整数,则工作正常;但如果不是,则电子邮件会正确发送,但错误消息也会打印到屏幕上。
为什么我的脚本也运行except部分?
在您的异常处理代码中添加对'traceback.print_exc()'的调用,以找出引发了什么异常(这是为什么except部分正在执行)。 –
从[docs](https://docs.python.org/2/library/smtplib.html#smtplib.SMTP.quit)猜测你可能意味着'server.quit()'而不是'server.close ()'? – asongtoruin
您可能正在从'sys.exit'中捕获'SystemExit'异常 – VPfB