class Product:
    def __init__(self, title, logger):
        self.title = title
        self.logger = logger

    def setPrice(self, price):
        try:
            if price <= 0: raise Exception('wrong price!')
            self.price = price
        except Exception as e:
            self.logger.fillLog(e)

class Logger:
    def __init__(self):
        self.log = []

    def makeLog(self, message):
        print('error: ', message)

    def fillLog(self, message):
        self.log.append(message)

logger = Logger()
product = Product('phone', logger)
product.setPrice(-10)