Почему исключение останавливает основной цикл, несмотря на наличие блока try-кроме?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему исключение останавливает основной цикл, несмотря на наличие блока try-кроме?

Сообщение Anonymous »

У меня есть следующий код:

Код: Выделить всё

import datetime
import logging
import time

import pychromecast

logging.basicConfig(level=logging.INFO, format="%(threadName)s:%(message)s")

def run():
id = 'sony kd-49xh8505'
cast = pychromecast.get_chromecast_from_host(
host=("192.168.86.126", None, id, id, id)
)
cast.wait()
logging.info(cast.status.display_name)

while True:
print(datetime.datetime.now())
try:
run()
except Exception as e:
print("recovering")
time.sleep(0.5)
Как видите, я хочу каждые 0,5 секунды проверять, какое приложение запущено на моем телевизоре, с помощью PyChromecast. Я хочу игнорировать все ошибки и продолжить цикл.

Код: Выделить всё

The sample output is:
2024-09-15 19:33:48.253462
MainThread:YouTube
2024-09-15 19:33:49.171936
MainThread:YouTube
2024-09-15 19:33:50.165728
MainThread:YouTube
2024-09-15 19:33:51.090723
Thread-38:[(192.168.86.126):8009] Failed to connect to service HostServiceInfo(host='192.168.86.126', port=8009), retrying in 5.0s
Итак, если приложение работает нормально, возникает ошибка соединения, и приложение останавливается. Цикл while True останавливается. Что интересно:
  • основной цикл останавливается, но не прерывается (процесс приложения все еще активен), но никаких дальнейших действий не производится.
  • Я пробовал-кроме: print("recovering"), но этого сообщения нет в выводе
  • журнал "Не удалось подключиться к service» создается в другом потоке — «Thread-38» — вместо «MainThread».
    Обратите также внимание, что в сообщении говорится «повторная попытка через 5.0 с», но через 5 секунд ничего не происходит.
Не могли бы вы объяснить, что здесь происходит и, что еще важнее, как изменить мое приложение, чтобы оно игнорировало все ошибки подключения и просто продолжало основной цикл?

Подробнее здесь: https://stackoverflow.com/questions/789 ... cept-block
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»