Python3 - хорошо ли обрабатывать исключения, сравнивая их сообщения об ошибках? (пожалуйста, просмотрите мой код) - PullRequest
0 голосов
/ 15 ноября 2018

Я довольно новичок в программировании, поэтому в настоящее время изо всех сил пытаюсь создать бота для телеграмм, где я могу отправить предопределенное шаблонное сообщение своим получателям.

В ходе моей работы я сталкивался с «сообщением об ошибке», которое выдается, как показано ниже, когда оно пытается отправить сообщения тем, чья «сущность», такая как user_name, не существует, написана неверно и так далее.

ОШИБКА: root: не удается найти любую сущность, соответствующую "CHANNELS2RSS BOT"

Чтобы просто пропустить эти сущности, я написал следующие коды -

except ValueError as e:
    error_msg = str(e)
    if "Cannot find any entity" in error_msg:
        logging.error(error_msg + " >> skipping this entity")
        break

Хороший ли способ обработки исключений?Если есть другое решение, скажите, пожалуйста ..

1 Ответ

0 голосов
/ 15 ноября 2018

Для того, что вы хотите, вы должны создать собственную ошибку - это класс, производный от Exception, см. Правильный способ объявления пользовательских исключений в современном Python? . и поймать его ex:

class CannotFindEntity(Exception):
    pass

class Finder():
    def find(iterator):
        # do something
        if something:
            raise CannotFindEntity  # raise the error
        else:
            return  # or raise other Error

тогда вы можете выбросить эту ошибку и перехватить ее при необходимости. Но это работает, только если вы пишете код, запускающий исключение.

...