public final Object intercept( final Object receiver, Method method, final Object[] parameters, Invoker invoker ) throws Throwable {
        if( !shouldInterceptMethod( method ) ) {
            return invoker.proceed();
        }

        int currentStackDepth = stageStack.size();
        Object parentStage = null;
        if( !stageStack.isEmpty() ) {
            parentStage = stageStack.peek();
        }

        stageStack.push( receiver );
        try {
            stageTransitionHandler.enterStage( parentStage, receiver );

            return doIntercept( receiver, method, parameters, invoker, currentStackDepth );
        } finally {
            stageStack.pop();
            stageTransitionHandler.leaveStage( parentStage, receiver );
        }
    }
Whether all exceptions should be suppressed and not be rethrown
jgiven-core/src/main/java/com/tngtech/jgiven/impl/intercept/StepInterceptorImpl.java