Здравствуйте, уважаемое сообщество.
Мне нужно реализовать собственный класс ошибок в 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.
У меня есть два вопроса по этому поводу.
Это хорошая практика , чтобы позволить Класс исключения отображает сообщение об ошибке самостоятельно через мою настраиваемую систему уведомлений, или мне лучше сделать это вручную в предложении except
?
Что было бы наиболее подходящим способом избежать передавать «я» среди аргументов каждый раз, когда я поднимаю CustomError
? Как ошибка могла определить среду, в которой она возникла, чтобы правильно вызвать метод custom_error_notification объекта, вызвавшего ошибку?
(меня интересует Python 3, однако мне нужно будет перенести этот скрипт на Iron Python, в конце концов ...)
Большое спасибо за ваше время.