Я пытаюсь получить контент из внешних каналов на своем веб-сайте Django с помощью Универсальный анализатор каналов . Я хочу иметь некоторую пользовательскую обработку ошибок, например если пользователь вводит URL, который не является фидом. Когда я попробовал, как feedparser реагирует на ошибочный ввод, я был удивлен, увидев, что feedparser вообще не выдает никаких исключений. Например. для содержимого HTML он пытается проанализировать некоторую информацию из кода HTML, а для несуществующих доменов он возвращает практически пустой словарь:
{'bozo': 1,
'bozo_exception': URLError(gaierror(-2, 'Name or service not known'),),
'encoding': 'utf-8',
'entries': [],
'feed': {},
'version': None}
Другие ошибочные входные данные проявляются в значениях status_code
или namespaces
в возвращаемом словаре.
Итак, каков наилучший подход к проверке вменяемых ошибок, не прибегая к бесконечному каскаду if .. elif .. elif ...
?