Как мне реализовать собственную систему уведомлений об ошибках в Python? - PullRequest
0 голосов
/ 08 мая 2020

Здравствуйте, уважаемое сообщество.

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

class CustomError(Exception)

    def __init__(self, component, err_type, message):

        super(CustomError, self).__init__(message)
        component.custom_error_notification(err_type, message)


class MyComponent:

    def run_some_code(self):

        try:

            # Some code
            raise CustomError(self, err_type, message)

        except CustomError:

            pass

    def custom_error_notification(self, err_type, message):

        # Display the error though a custom "channel".
        # This needs to remain inside MyComponent class.

У меня есть два вопроса по этому поводу.

  1. Это хорошая практика , чтобы позволить Класс исключения отображает сообщение об ошибке самостоятельно через мою настраиваемую систему уведомлений, или мне лучше сделать это вручную в предложении except?

  2. Что было бы наиболее подходящим способом избежать передавать «я» среди аргументов каждый раз, когда я поднимаю CustomError? Как ошибка могла определить среду, в которой она возникла, чтобы правильно вызвать метод custom_error_notification объекта, вызвавшего ошибку?

(меня интересует Python 3, однако мне нужно будет перенести этот скрипт на Iron Python, в конце концов ...)

Большое спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...