gpt4 book ai didi

python - 处理异常和继续的问题

转载 作者:行者123 更新时间:2023-11-30 23:33:31 24 4
gpt4 key购买 nike

我正在构建或尝试构建一个 python 脚本,该脚本使用 wmi python 模块检查特定程序的 IP 地址列表 (ips.txt)。但是,无论我如何处理没有运行 RPC 服务的 Assets 的异常,脚本都会因错误而停止运行。我正在使用 python 2.7.5

我可以捕获并传递错误以继续吗?我可以捕获错误并打印或返回一条说明,表明 ip 不存在或 rpc 未运行吗?

提前谢谢

这是我的代码:

import wmi
list = open("ips.txt")

for line in list.readlines():
asset = line.strip('\n')
c = wmi.WMI(asset)
try:
for process in c.Win32_Process (name="SbClientManager.exe"):
print asset, process.ProcessId, process.Name
except Exception:
pass

我尝试以多种方式处理异常以继续解析我的列表,但脚本仍然出现以下错误:

    Traceback (most recent call last):
File ".\check_service.py", line 12, in <module>
c = wmi.WMI(asset)
File "C:\Python27\lib\site-packages\wmi.py", line 1290, in connect
handle_com_error ()
File "C:\Python27\lib\site-packages\wmi.py", line 241, in handle_com_error
raise klass (com_error=err)
wmi.x_wmi: <x_wmi: Unexpected COM Error (-2147023174, 'The RPC server is unavailable.', None, None)>

最终,我只是想继续执行脚本并捕获错误。也许注明 IP 没有响应的注释会有所帮助。以下是我尝试过的异常(exception)示例:

except Exception:
sys.exc_clear()

except:
pass

except wmi.x_wmi, x:
pass

最佳答案

您粘贴的回溯表明错误出现在 c = wmi.WMI(asset) 行中。您需要将该行放在 try block 内。

像这样:

import wmi
list = open("ips.txt")
bad_assets = []

for line in list.readlines():
asset = line.strip('\n')
try:
c = wmi.WMI(asset)
for process in c.Win32_Process (name="SbClientManager.exe"):
print asset, process.ProcessId, process.Name
except Exception:
bad_assets.append(asset)

此外,建议 try catch 正确的异常。

关于python - 处理异常和继续的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18748044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com