热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

宣布SneakyThrow:一个Java库忽略已检查的异常

您是否厌倦了为Java的CheckedException编写“catch-pseudo-code”?而且,我们不要考虑烦人的附加单元测试。正在提供帮助。

您是否厌倦了为Java的Checked Exception编写“ catch-pseudo-code”? 而且,我们不要考虑烦人的附加单元测试。

正在提供帮助。

让我向您介绍SneakyThrow。 借助此Java库,减少了捕获“检查的异常”所需编写的代码量。

它仅使用“合法的东西”,没有像字节码操作这样的魔术。 我在看你龙目岛项目😉

SneakyThrows将异常包装到RuntimeException中。 众所周知:我们不必捕获这些类型的异常。 我们可以将它们保留为未经检查的异常。

偷偷摸摸的行动

我怎么才能得到它?

只需将库作为依赖项复制并粘贴到pom.xml或选择的类似依赖项管理器中:


com.rainerhahnekamp sneakythrow
1.0.0

如何使用?

如果没有SneakyThrow,则具有Checked Exception的代码如下所示:

URL url;
try {
url = new URL("https://www.hahnekamp.com");
} catch (MalformedURLException mue) {
throw new RuntimeException(mue);
}

感谢SneakyThrow,您的代码如下所示:

URL url = sneak(() -> new URL("https://www.hahnekamp.com"));

大! 它也适用于Stream和lambdas吗?

当然可以 再次没有SneakyThrow的代码:

private URL createURL(String url) throws MalformedURLException {
return new URL(url);
}

Stream
.of("https://www.hahnekamp.com", "https://www.austria.info")
.map(url -> {
try {
return this.createURL(url);
} catch (MalformedURLException mue) {
throw new RuntimeException(mue);
}
})
.collect(Collectors.toList());

现在再用SneakyThrow减少代码:

private URL createURL(String url) throws MalformedURLException {
return new URL(url);
}

Stream
.of("https://www.hahnekamp.com", "https://www.austria.info")
.map(sneaked(this::createURL))
.collect(Collectors.toList());

请注意, 偷偷 窜至的差异。

在哪里可以获得更多信息?

文章“忽略Java中的异常”更详细地描述了SneakyThrow的原理和基本方法。

SneakyThrow是开源的,可在GitHub上获得 。

尝试一下,让我听听它的运行情况。 欢迎任何形式的反馈。

最初于 2018年3月26日 发布在 www.rainerhahnekamp.com 上。

From: https://hackernoon.com/announcing-sneakythrow-8b41b07f9201



推荐阅读
author-avatar
用户0a8xoj91q0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有