code: def exception(self, *args, **kwargs):
          
          if len(args) == 1 and callable(args[0]):
              if isinstance(args[0], type) and issubclass(args[0], Exception):
                  pass
              else:  # pragma: no cover
                  raise RuntimeError("Cannot use the @exception decorator "
                                     "without arguments")
  
          def wrapper(handler_f):
              self._exceptions.append(FutureException(handler_f,
                                                      exceptions=args,
                                                      kwargs=kwargs))
              return handler_f
          return wrapper
docs: Decorate and register an exception handler
          :param args: captures all of the positional arguments passed in
          :type args: tuple(Any)
          :param kwargs: captures the keyword arguments passed in
          :type kwargs: dict(Any)
          :return: The exception function to use as the decorator
          :rtype: fn