def METHOD_NAME(module_name: str) -> Callable[[T_C], T_C]:
    def decorate(delegate: T_C) -> T_C:
        @functools.wraps(delegate)
        def wrapper(*args, **kwargs):
            try:
                return delegate(*args, **kwargs)
            except Exception as e:
                if isinstance(e, FaultState):
                    raise
                else:
                    raise FaultState.error(module_name + " " + str(type(e)) + " " + str(e)) from e
        return wrapper
    return decorate