Я хочу есть суперкласс, который требует реализации метода его наследниками, но в конечном итоге имеет общую обработку ошибок, которая заключается в регистрации ошибки и ее возникновении. Я предпочитаю этот метод, поскольку у меня есть несколько подклассов, которые используют этот объект, поэтому обновление родительского класса требует гораздо меньше изменений кода, а также кажется более чистым по сравнению с добавлением try/catch к каждому варианту дочернего класса, который у меня есть
например
Код: Выделить всё
class Super(object):
logger = logging.GetLogger(__name__)
def my_method(some_value):
try:
raise RuntimeError("my_method must be implemented")
except Exception as e:
logger.error("error raised: %s" % e)
raise e
class childClass(Super):
def my_method(some_value):
# do some stuff, maybe an error gets raised
Подробнее здесь: https://stackoverflow.com/questions/790 ... ror-raised