函数式接口抛出异常
小于 1 分钟
/** 优雅的抛出异常
*/
public class Demo2 {
public static void main(String[] args) {
// 1、自定义函数接口
ExceptionUtil.throwMsg(true).throwMsg("抛出异常消息");
// 2、采用内置的函数接口
ExceptionUtil.throwMsg(()-> true,"抛出异常消息");
}
}
class ExceptionUtil {
// 1、自定义函数接口
public static ThrowMessage throwMsg(boolean isTrue) {
return (msg) -> {
if (isTrue) {
throw new RuntimeException(msg);
}
};
}
public static ThrowMessage throwMsg1(boolean isTrue){
return new ThrowMessage() {
@Override
public void throwMsg(String msg) {
if (isTrue) {
throw new RuntimeException(msg);
}
}
};
}
// 2、采用内置的函数接口
public static void throwMsg(Supplier<Boolean> supplier,String msg){
if (supplier.get()){
throw new RuntimeException(msg);
}
}
}
// 1、自定义函数接口
@FunctionalInterface
interface ThrowMessage {
void throwMsg(String msg);
}