powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы [новые:1] / Поиск: Искать ответы на сообщение: #394983  
3 сообщений из 3, страница 1 из 1
Скриптовые языки программирования / Вялые питоны
    #394983
Ихтиандр
Скрыть профиль Поместить в игнор-лист
Участник
А вот скажите мне петончики
создаю экземпляр класса для работы с кафкой

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

в качестве десериалайзера как в примерах прописываю лямбда

трай на сабскрайб прописал - вроде прожевало

Задумка теперь ломать цикл считывания брэйком при ошибке декодирования JSON и посылать обратно на подписку

Где тепарь ловить ValueError при декодировании считываемых сообщений, то есть при обращении к message["FieldName"].value?
в каком месте кода писать try: except?

Пробую так:
Код: Python
1.
2.
3.
4.
5.
6.
7.
    for message in consumer:
      try:
        print ("%s" % (message.value["DateTime"]))
        ...
      except ValueError as vErr:
        print_error("Exception during read/decode JSON from Kafka - {}".format(vErr))
        break
Не обрабатывается эксепшен, вываливается на строке с обращением.
...
Ихтиандр:
Пользователь запросил модераторские права на тему.
Рейтинг: 0 / 0
Скриптовые языки программирования / Вялые питоны
    #395113
IT-Клоп
Скрыть профиль Поместить в игнор-лист
Участник
А если так - то какая ошибка?
Код: Python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    for message in consumer:
      try:
        print ("%s" % (message.value["DateTime"]))
        ...
      except ValueError as vErr:
        print_error("Exception during read/decode JSON from Kafka - {}".format(vErr))
        break
      except Exception as e:
        print("Exception is {}",format(e))
        break
...
Рейтинг: 0 / 0
Скриптовые языки программирования / Вялые питоны
    #397121
Кусь
Скрыть профиль Поместить в игнор-лист
Участник
Ихтиандр  15.05.2023, 14:25
[игнорируется]
однако ведь не исключено что в топик попало говно не по ожидаемому формату
На этот случай надо использовать Schema Registry и JsonSerializer, а не твой самопал с перехватом в Exception.
Ихтиандр  15.05.2023, 14:25
[игнорируется]
Где тепарь ловить ValueError
С чего ты взял, что тебе надо ловить только ValueError, а не другие ошибки (например JSONDecodeError), которые у твоём коде просто не перехватываются?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы [новые:1] / Поиск: Искать ответы на сообщение: #394983  
Пользователи онлайн (24): Анонимы (11), CerebroSQL, Гарыныч, MaksRoman0w, ElenaG, Biene Maja 1 мин., XEugene 2 мин., Брюквенные годы 3 мин., Yandex Bot 3 мин., Шоколадный01 3 мин., prostozevs 4 мин., Bing Bot 4 мин., Vaska Balboa 4 мин., Ветер 5 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]