Есть ли способ предотвратить ошибку «плохое соединение» или «нет сети» внутри python?

#python #urlopen

#python #urlopen

Вопрос:

Я использую команду urlopen из пакета urllib.request, и она работает правильно.

Но поскольку он находится внутри бесконечного цикла, я хочу рассмотреть возможные условия «Нет сети». Я не хочу, чтобы мой код ломался из-за этой ошибки.

Я попробовал функцию ниже, но она не работает:

 def update():
    try:
        cmd = 'getUpdates'
        resp = urlopen(URL   cmd)
        line = aux_dec2utf8(resp)
        upds = json.loads(line)
        NoM = len(upds['result'])
    except ValueError:
        print('NO NETWORK')    
    return NoM, upds
 

Изображение ошибки

Комментарии:

1. Вы имели в виду: except UrlError: ?

2. Я этого не понял

3. Чего вы не получили?

4. вы хотите изменить «except ValueError:» на «except URLError:» ?

5. Спасибо, это решено

Ответ №1:

Я думаю, что проблема здесь в исключении ValueError. Возможно, вы захотите настроить исключение для urllib.HTTPError и / или urllib.URLError для обнаружения ошибки, которую вы пытаетесь предотвратить от нарушения вашего скрипта.

ValueError используется для перехвата недопустимого аргумента и не может быть причиной прерывания потока.