def METHOD_NAME(self, val=None):
    """ The error is trigger if the caller's method name matches, condition is defined and evaluates to True the value is specified and the condition evaluates to True.
    """
    if sys._getframe(1).f_code.co_name == self.method:
        if val is None or not self.condition or eval(self.condition):
            logger.debug("triggering error at <method=%s, condition=%s, val=%s>, error expr=%s" %
                         (repr(self.method), repr(self.condition), repr(val), repr(self.expr)))
            exec(self.expr)