在python/flask中发送邮件时检查网络连接以捕获错误

在python/flask中发送邮件时检查网络连接以捕获错误,python,flask,Python,Flask,我正在使用python/flask从flask\u MAIL导入邮件。这是我的代码的一个小模块 token = s.dumps(email, salt='email-confirm') t = url_for('confirm_email', token=token, _external=True) msg = Message('Confirm Email', sender='origrosh@gmail.com', recipients=[email], html=render_templat

我正在使用python/flask从flask\u MAIL导入邮件。这是我的代码的一个小模块

token = s.dumps(email, salt='email-confirm')
t = url_for('confirm_email', token=token, _external=True)
msg = Message('Confirm Email', sender='origrosh@gmail.com', recipients=[email], html=render_template('mail.html', text=t))
link = url_for('confirm_email', token=token, _external=True)
msg.body = 'Your link is {}'.format(link)
mail.send(msg)
如果在Internet连接关闭时运行代码,则会出现“socket.gaierro:[Errno-3]名称解析暂时失败”错误。您能告诉我如何捕获此异常并显示“确保您已连接到Internet”之类的内容吗

except urllib2.URLError as err: 
    return False
用某种方法捕捉异常,如上面尝试访问特定URL的异常,也会很有帮助。那么,当您使用“瓶中邮件”时,有什么替代方法呢

另外,如果您能提供一个更通用的解决方案,我将非常感激,因为当以后互联网没有连接时,我可能不得不处理类似的问题

先谢谢你


我知道如何捕捉异常,但不知道这个特殊的异常

实际上,就像任何例外一样:

>>> import socket
>>> try:
...     raise socket.gaierror(3, "wtf")
... except socket.gaierror as e:
...     print "got gaiesocket error %s" % e
... 
got gaiesocket error [Errno 3] wtf
如果您想使用特殊情况errno 3,只需测试e.errno:


我不确定我是否理解您捕获异常的问题。。。你知道如何在Python中捕获异常,不是吗???此外,如果您遇到此错误,则是您的服务器断开了连接,而不是用户,因此告诉用户确保他已连接到internet毫无意义。我知道如何捕获异常,但不知道此异常。还有,是的,在这种情况下,文本可能是其他内容。基本上,我想控制发生了什么,而不是出现错误。实际上,如果你的服务器连接断开,你的用户很可能根本无法获得HTTPResponse。。。只是说说而已,另一个问题。只有当服务器与Internet断开连接时,才会出现此异常错误3,对吗?除此之外,还有什么其他情况?
>>> e
gaierror(3, 'wtf')
>>> e.errno
3