ebul-func/src/main/java/info/ebenoit/ebul/func/ThrowingDoubleBinaryOperator.java
Emmanuel BENOîT ec2c870f7b Initial import
Contains POM (probably incomplete) as well as all Throwing versions of
java.util.function interfaces + the Runnable interface.
2015-09-11 14:04:59 +02:00

57 lines
1.3 KiB
Java

package info.ebenoit.ebul.func;
import java.util.function.DoubleBinaryOperator;
/**
* This interface supports a {@link DoubleBinaryOperator} that can throw checked exceptions. Checked exceptions are
* transmitted using a {@link FunctionException} runtime exception.
*
* @author <a href="mailto:ebenoit@ebenoit.info">E. Benoît</a>
*/
@FunctionalInterface
public interface ThrowingDoubleBinaryOperator
extends DoubleBinaryOperator
{
/**
* Applies this function to the given arguments.
*
* @param t
* the first argument
* @param u
* the second argument
* @return the result
* @throws FunctionException
* if a checked exception occurs
*/
@Override
default double applyAsDouble( final double t , final double u )
{
try {
return this.throwingApplyAsDouble( t , u );
} catch ( final RuntimeException e ) {
throw e;
} catch ( final Throwable e ) {
throw new FunctionException( e );
}
}
/**
* Applies this function to the given arguments.
*
* @param t
* the first argument
* @param u
* the second argument
* @return the result
* @throws Throwable
* any exception
*/
public double throwingApplyAsDouble( double t , double u )
throws Throwable;
}