return obj;
} catch (Throwable t) {
logger.debug("Method " + methodSignature.toString() + " did not exit gracefully. " + t);
throw t;
} finally {
limiterStrategyChain.postInvocationCleanupChain(methodGroupName, methodInvocationUUID, joinPoint.getArgs());
}
}
// throw an exception containing the conclusion
throw new RateLimiterException("Method call blocked.", conclusion);