使用 os.system 时有没有办法捕获运行时错误?
Is there a way to catch RuntimeErrors when using os.system?
我正在编写一个工具,用于向 Google Lighthouse 的 CMD 发送命令,如果 URL 无效,我想捕获错误。我会使用什么异常?
我目前正在尝试在输入无效 URL 时捕获异常中的 RuntimeError。
try:
os.system("lighthouse --quiet {} {} {} {} {} --output-path={}/{}.html ".format(DevEmuStr,throttlingVar,CacheStr,presetVar,url,reportlocation,filename))
except RuntimeError:
print("Please provide a proper URL")
而不是 "Please provide a proper URL" 我仍然得到:
Runtime error encountered: The URL you have provided appears to be invalid.
LHError: INVALID_URL
at lighthouse (C:\Users\sugar\AppData\Roaming\npm\node_modules\lighthouse\lighthouse-core\index.js:44:11)
at chromeP.then._ (C:\Users\sugar\AppData\Roaming\npm\node_modules\lighthouse\lighthouse-cli\run.js:182:12)
at process._tickCallback (internal/process/next_tick.js:68:7)
Lighthouse 继续下一个 URL
我还能捕捉到其他错误吗?
不,您无法从 Python 中捕捉到异常。
在我看来 "Runtime error encountered" 是由 lighthouse 打印出来的输出,它不是您可以捕获的实际 Python 异常。
Python 对您以 os.system 开头的可执行文件内部发生的事情一无所知,您只能获取输出和退出代码。
感谢所有试图帮助我的人,我终于找到了获得它的方法。
通过添加:
lh_url_ok = os.system("lighthouse --quiet {} {} {} {} {} --output-path={}/{}.html ".format(DevEmuStr,throttlingVar,CacheStr,presetVar,url,reportlocation,filename))
if lh_url_ok >0:
print("Error")
我能够检查退出代码是否高于 0(0=无错误)
我正在编写一个工具,用于向 Google Lighthouse 的 CMD 发送命令,如果 URL 无效,我想捕获错误。我会使用什么异常?
我目前正在尝试在输入无效 URL 时捕获异常中的 RuntimeError。
try:
os.system("lighthouse --quiet {} {} {} {} {} --output-path={}/{}.html ".format(DevEmuStr,throttlingVar,CacheStr,presetVar,url,reportlocation,filename))
except RuntimeError:
print("Please provide a proper URL")
而不是 "Please provide a proper URL" 我仍然得到:
Runtime error encountered: The URL you have provided appears to be invalid.
LHError: INVALID_URL
at lighthouse (C:\Users\sugar\AppData\Roaming\npm\node_modules\lighthouse\lighthouse-core\index.js:44:11)
at chromeP.then._ (C:\Users\sugar\AppData\Roaming\npm\node_modules\lighthouse\lighthouse-cli\run.js:182:12)
at process._tickCallback (internal/process/next_tick.js:68:7)
Lighthouse 继续下一个 URL
我还能捕捉到其他错误吗?
不,您无法从 Python 中捕捉到异常。
在我看来 "Runtime error encountered" 是由 lighthouse 打印出来的输出,它不是您可以捕获的实际 Python 异常。
Python 对您以 os.system 开头的可执行文件内部发生的事情一无所知,您只能获取输出和退出代码。
感谢所有试图帮助我的人,我终于找到了获得它的方法。
通过添加:
lh_url_ok = os.system("lighthouse --quiet {} {} {} {} {} --output-path={}/{}.html ".format(DevEmuStr,throttlingVar,CacheStr,presetVar,url,reportlocation,filename))
if lh_url_ok >0:
print("Error")
我能够检查退出代码是否高于 0(0=无错误)