Двигаемся дальше в разработке нашего робота по поиску госконтрактов. Тема сегодняшнего урока — ошибки.

Видео: Глеб Лиманский

Если в нашем запросе будут указаны параметры, по которым ничего не находится, или сервис «ГосЗатрат» перестанет отвечать на запросы, мы получим ошибку — и тогда наш скрипт сломается. Чтобы этого избегать, мы будем применять синтаксис try-except. Давайте попробуем для начала воспроизвести ошибку.

Меняем год в запросе на еще не наступивший 2022...
...и код ломается

Разберемся, как не получать такие ошибки. С помощью нового условия как бы скажем нашей функции: попробуй сделать запрос (try), а если не получается (except), сделай что-то другое. Что именно? Например, можем вывести некоторое сообщение: «Что-то пошло не так!».

Теперь, если наше условие будет выполняться без ошибок, мы получим нужный результат...
...а если не будет — получим сообщение об ошибке

С помощью этого синтаксиса можно прописывать конкретно, какой ошибки мы хотим избежать. Сейчас в нашем коде вне зависимости от ошибки мы получим сообщение «Что-то пошло не так!». Та ошибка, когда мы сами ввели неподходящее значение параметра, называется JSONDecodeError

Если мы добавим ее название в условие, а вылетит какая-то другая — наша функция снова сломается. В этот раз мы оставим уточнение, чтобы в дальнейшем иметь возможность отследить другие ошибки и решить, как с ними поступить.