自定义函数式@FunctionalInterface异常接口
1、添加注解
/**
* 抛出异常函数接口
*
* @author liunancun
* @date 2021/2/5
*/
@FunctionalInterface
public interface ThrowExceptionSupplier<T>
{
/**
* 返回一个结果
*
* @return
* @throws Exception
*/
T get() throws Exception;
}
2、接口作为参数使用
/**
* 捕获异常
*
* @param action
* @param <R>
* @return
*/
public static <R> R tryCatch(ThrowExceptionSupplier<R> action)
{
try
{
return action.get();
}
catch (BaseException e)
{
throw e;
}
catch (Exception e)
{
throw new BaseException(e.getMessage(), e);
}
}
自定义函数式@FunctionalInterface异常接口的更多相关文章
- 微信公众平台自定义菜单及高级接口PHP SDK
本文介绍介绍微信公众平台自定义菜单及高级接口的PHP SDK及使用方法. 作者 方倍工作室 修正记录: 2014.05.03 v1.0 方倍工作室 http://www.cnblogs.com/txw ...
- C++异常处理 - 栈解旋,异常接口声明,异常类型和异常变量的生命周期
栈解旋(unwinding) 异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上的构造的所有对象,都会被自动析构.析构的顺序与构造的顺序相反.这一过程称为栈的解旋(unwinding). d ...
- 微信公众平台自定义菜单及高级接口PHP SDK(转)
本文介绍介绍微信公众平台自定义菜单及高级接口的PHP SDK及使用方法. 作者 方倍工作室 修正记录: 2014.05.03 v1.0 方倍工作室 http://www.cnblogs.com/txw ...
- Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结 mysql
Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结 mysql 1. 图16.1:MySQL体系结构1 2. 16.7. 创建表create()虚拟函数:2 3. 16.8 ...
- 自定义菜单和高级接口-获取Access Token
自定义菜单和高级接口都需要使用APPID和AppSecret来创建. 对应暂时没有这些权限的微信公众账号,开发者可以申请测试账号来体验和测试体验微信公众平台的所有高级接口的功能.链接 https:// ...
- Java自定义排序:继承Comparable接口,重写compareTo方法(排序规则)
代码: 1 import java.util.*; 2 3 /** 4 * 学习自定义排序:继承Comparable接口,重写compareTo方法(排序规则). 5 * TreeMap容器的Key是 ...
- Java8自定义函数式编程接口和便捷的引用类的构造器及方法
什么是函数编程接口? 约束:抽象方法有且只有一个,即不能有多个抽象方法,在接口中覆写Object类中的public方法(如equal),不算是函数式接口的方法. 被@FunctionalInterfa ...
- lambda表达式与函数式(FunctionalInterface)接口
一.lambda表达式 lambda表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).使用它可以写出更简洁.更 灵活的代码. ...
- 自定义springmvc统一异常处理器(实现HandlerExceptionResolver接口)不起作用的一种情况
ExceptionResolverCustom 这个是自定义的异常处理器类. 在springmvc中注册 在web.xml文件中屏蔽springmvc自动注册的异常处理器 网上的资料就是这么配置的,可 ...
- [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念
本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的 ...
随机推荐
- vue 复制功能
实现: let message = ` ${name} 电话:${item.phone} 部门:${item.department} 职务: ${item.post} 邮箱:${item.email} ...
- linux命令行大量零碎练习习题集-打包未整理
linux命令行大量零碎练习习题集-打包未整理最近看完了一本linux书籍,想着做题来检测和巩固一下,于是打算去买本linux命令集习题去做做.但是没有找到相关的书籍,于是只能在网上随便找找.但是很多 ...
- iOS 常用第三方库及原理
AFNetWorking SDWebImage MJRefresh Masonry YYModel IQKeyboardManger
- hive中对时间处理的函数总结
日期转为时间戳 unix_timestamp('2022-11-12 00:00:00.000') 结果:1668182400 from_unixtime(unix_timestamp('2022-1 ...
- MobaXterm激活专业版
本文思路来自 https://github.com/flygon2018/MobaXterm-keygen 有python 环境 并且不看英文的可以继续往下 不然直接访问这个地址也行. 1.需要一个大 ...
- centos安装Jenkins报错
[SKIPPED] jenkins-2.249.3-1.1.noarch.rpm: Already downloaded warning: /var/cache/dnf/jenkins-0919f06 ...
- Docker 安全加固
一.docker安全加固 1.利用LXCFS增强docker容器隔离性和资源可见性 (proc容器与宿主机之间是共享的 没有进行隔离) 此rpm包在真机桌面q目录中 需先传到虚拟机/root/下 在 ...
- java的特性和版本
java的特性 简单性 面向对象性 可移植性(跨平台性) 高性能 安全性 健壮性 多线程 分布式 动态性 java的三个版本 javaSE(标准版),主要是桌面程序开发 javaME(微型版),主要是 ...
- jupyter notebook 切换环境
jupyter-notebook 中切换 conda 虚拟环境 介绍 jupyter notebook是anaconda中root目录中默认的python环境,如果要使拥创建的其他环境,则需要安装 ...
- vue学习之-----组件递归调用
1.关键点 2.父组件 <template> <div> <div class="btn-title"> <el-button @clic ...