首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理python中的telnetlib超时错误

处理python中的telnetlib超时错误
EN

Stack Overflow用户
提问于 2013-03-27 22:05:49
回答 1查看 10.3K关注 0票数 1

我正在尝试编写一个python脚本来建立到一系列主机的telnet连接(使用telnetlib):

代码语言:javascript
复制
for i in range(len(HOST)):
    print "scanning " + HOST[i] + " ...\n"
    tn = telnetlib.Telnet(HOST[i],23,3)

问题是当其中一个连接超时时,脚本执行中断并返回以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Python27\telnet.py", line 24, in <module>
    tn = telnetlib.Telnet(HOST[i],23,3)
  File "C:\Python27\lib\telnetlib.py", line 209, in __init__
    self.open(host, port, timeout)
  File "C:\Python27\lib\telnetlib.py", line 225, in open
    self.sock = socket.create_connection((host, port), timeout)
  File "C:\Python27\lib\socket.py", line 571, in create_connection
    raise err
socket.timeout: timed out

有人知道如何跳过此错误并继续执行脚本吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-27 22:12:44

您需要使用try...except块来捕获异常,并告诉解释器忽略它。例如:

代码语言:javascript
复制
import socket

for i in range(len(HOST)):
    print "scanning " + HOST[i] + " ...\n"
    try:
        tn = telnetlib.Telnet(HOST[i],23,3)
    except socket.timeout:
        pass

在这种情况下,显式声明要捕获哪个异常(socket.timeout)是个好主意。套接字可以抛出许多不同类型的异常,因此使用通用except:语句可能会掩盖打开、读取或写入套接字时出现的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15660890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档