我想實現誤差通過獲取圖書館的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