java~用泛型来定义异常类型,避免方法调用时throws异常
我们一般在底层写方法时,如果方法显示throws异常,那么在调用时,也需要将这个异常throws出来,例如
public RetOps<T> assertCode(Integer expect, Function<? super R<T>, ? extends Exception> func)
throws Exception {}
调用时
@Test
public void testR() throws Exception {
R<Integer> result = new R<>();
result.setCode(2001);
result.setData(1024);
new RetOps<>(result).assertCode(200, i -> new RuntimeException("error " + i.getCode()))
.assertDataNotNull(r -> new IllegalStateException("oops!")).useData(System.out::println);
}
如果调用时不显示throws出异常,编译器会报出错误,如下图
泛型类型声明异常
public RetOps assertCode(Integer expect, Function<? super R, ? extends Ex> func)
throws Ex {}
调用方法时,不需要再throws Ex了,这种对调用者更友好,如图
解释说明
在第一个方法中,使用了泛型类型
而在第二个方法中,直接使用了Exception作为返回类型,因此在调用该方法时需要显式声明throws Exception,表明该方法可能会抛出Exception或其子类的异常。
通过泛型定义异常类型可以使代码更加灵活,同时也能提供更好的类型安全性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2017-02-21 Linux~连接windows的ftp,unzip出现的问题
2014-02-21 MVVM架构~knockoutjs实现简单的购物车
2013-02-21 DDD~microsoft NLayerApp项目中的层次结构图
2013-02-21 DDD~基础设施层
2012-02-21 何为.Net Remoting