【问题标题】:Adding exceptions for not recognized error?为无法识别的错误添加例外?
【发布时间】:2014-10-15 11:43:37
【问题描述】:

我收到此错误:

  File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 286, in connect
    for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
gaierror: [Errno -2] Name or service not known

当我输入错误的主机名时。我想抛出一个异常,提示输入了错误的主机名,但 Python 无法识别该错误,并且我得到未定义的全局名称 gaierror。

我是这样尝试的:

try:
    ssh.connect(rec.host, username=rec.user, password=rec.password)
except gaierror:
    print 'blablabla'

然后它给出了这个错误:

    except gaierror:
NameError: global name 'gaierror' is not defined

我是否需要以某种方式自己定义该错误,或​​者我需要从paramiko 调用某些内容,以便python 能够理解该异常?

【问题讨论】:

  • 你怎么知道主机出错了?
  • 因为我输入了不存在的主机(目的是 ofc)?.. 当它没有找到这样的主机时,它会抛出 gaierror

标签: python python-2.7 exception exception-handling paramiko


【解决方案1】:

socket 模块导入gaierror 异常。 Docs

import socket

try:
    # Your code.
except socket.gaierror:
    # Handle exception.

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2015-04-29
    • 1970-01-01
    • 2016-03-17
    相关资源
    最近更新 更多