throw t;
} finally {
// this looks like a reasonable and clean place to stop the clock, even if we've wasted a few nanos before
// we actually get here
double duration = timer.stop();
final String eventValue = kpiTimedEvent.value();
final String name = eventValue.isEmpty() ? pjp.getTarget().getClass().getSimpleName() : eventValue;
final String operation = kpiTimedEvent.operation().isEmpty() ? pjp.getSignature().getName() : kpiTimedEvent.operation();
if (kpiTimedEvent.catchFailures()) {