我正在编写一个工具,该工具可以将命令发送到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")
我仍然得到:而不是“请提供正确的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)
灯塔只是继续下一个URL
我还能捕捉到另一个错误吗?
答案 0 :(得分:1)
感谢所有试图帮助我的人,我终于找到了一种方法。
通过添加以下内容:
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 =无错误)
答案 1 :(得分:0)
不,您可以从Python中捕获一个例外。
在我看来,“遇到运行时错误”是由灯塔打印输出的,这不是您可以捕获的实际Python异常。
Python对以os.system开头的可执行文件内部发生的事情一无所知,您只需要获取输出和退出代码即可。