喜欢捕捉错误,如果出现错误,做点什么
通过snmpandler包获取网络操作系统类型的Python代码。它可以工作,但是如果SNMP没有查询请求,它将超时。我想捕捉它并打印“无SNMP活动”
from nelsnmp.snmp import SnmpHandler
from nelsnmp.errors import ArgumentError, SnmpError
def findnetOS(host):
dev = SnmpHandler(host=host, version='2c', community='public')
hostinfo = HostInfo(dev)
osversion = hostinfo.get_version()
try:
os = hostinfo.os
except ArgumentError as e:
if e.__str__() == "No valid SNMP version defined":
os = None
return os
else:
return os
ostype = findnetOS(host)
if ostype != None:
ostype = "cisco_"+ostype
print ostype
else:
print "No SNMP Active"
exit(-1)
出现错误时,预期输出应为“无SNMP活动”,并在运行时无错误地打印ostype
我得到的错误是:
File "/usr/lib/python2.7/site-packages/nelsnmp/snmp.py", line 210, in _raise_error
raise ErrorType(error_data)
nelsnmp.errors.SnmpError: No SNMP response received before timeout
谢谢你的意见
做你为
ArgumentError
做的同样的事情相关问题 更多 >
编程相关推荐