public static Implementation throwing(TypeDescription throwableType) {
        if (!throwableType.isAssignableTo(Throwable.class)) {
            throw new IllegalArgumentException(throwableType + " does not extend throwable");
        }
        return new ExceptionMethod(new ConstructionDelegate.ForDefaultConstructor(throwableType));
    }
public static Implementation throwing ( TypeDescription throwableType ) { if ( ! throwableType . isAssignableTo ( Throwable . class ) ) { throw new IllegalArgumentException ( throwableType + " does not extend throwable" ) ; } return new ExceptionMethod ( new ConstructionDelegate . ForDefaultConstructor ( throwableType ) ) ; }
Creates an implementation that creates a new instance of the given {@link Throwable} type on each method invocation
which is then thrown immediately. For this to be possible, the given type must define a default constructor
which is visible from the instrumented type.

@param throwableType The type of the {@link Throwable}.
@return An implementation that will throw an instance of the {@link Throwable} on each method invocation of the
instrumented methods.