一个 Java 库忽略已检查的异常

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

放心,援助正在路上。

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

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

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

偷偷摸摸的行动

我怎么才能得到它?

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

<dependency>
  <groupId>com.rainerhahnekamp</groupId>
  <artifactId>sneakythrow</artifactId>
  <version>1.0.0</version>
</dependency>

该如何使用?

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


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());

请注意sneak和sneaked的区别。

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

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

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

原文链接: https://dev.to//rainerhahnekamp/announcing-sneakythrow-a-java-library-to-ignore-checked-exceptions-3an4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值