Есть ли способ отловить RuntimeErrors при использовании os.system? - PullRequest
0 голосов
/ 21 декабря 2018

Я пишу инструмент, который отправляет команды в CMD для Google Lighthouse и хочет отловить ошибку, если URL-адрес недействителен.Какое исключение я бы использовал?

В настоящее время я пытаюсь перехватить RuntimeError в Исключении при вводе неверного URL.

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)

И Lighthouse просто продолжает следующий URL

Есть ли еще одна ошибка, которую ямог поймать?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Спасибо всем, кто пытался мне помочь, я наконец нашел способ получить его.

Добавив это:

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 = нет ошибок)

0 голосов
/ 21 декабря 2018

Нет, нет исключений, которые вы могли бы поймать из Python.

Мне кажется, что "маятник обнаружил ошибку во время выполнения", это не фактическое исключение Python, которое вы могли быcatch.

Python ничего не знает о том, что происходит внутри исполняемого файла, который вы запускаете с os.system, вы можете просто получить выходные данные и код выхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...