加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 避免检查异常

发布时间:2020-12-15 04:17:21 所属栏目:Java 来源:网络整理
导读:首先,我强烈认为,检查的条款与未检查的例外情况是不准确的,因为它描述性地误导了谁在进行检查或检查是否是自愿的.因此,我会在这个问题中使用以下术语,以便不了解差异的人可能会回答: 检查强制异常=已检查异常 Check-not-mandated exception =未经检查的异常
首先,我强烈认为,检查的条款与未检查的例外情况是不准确的,因为它描述性地误导了谁在进行检查或检查是否是自愿的.因此,我会在这个问题中使用以下术语,以便不了解差异的人可能会回答:

>检查强制异常=已检查异常
> Check-not-mandated exception =未经检查的异常

问题的动机:
我觉得标准Java实用程序的编写者已经对异常进行了误导和不适当的过度依赖.我特别关注的实用程序是Integer.parseint(String)实用程序方法.

>它不应该使用check-not-mandated异常,因为使用util的每个人都知道提供的字符串通常是未知的,因此,无论如何我们都会强制尝试try.因此,这不是一个不可救助的情况.
>如果该实用程序的编写者强制使用了检查强制异常,那么它仍然是不合适的,因为因为您知道异常的可能性很高,所以不要将其作为例外.因为通过逻辑推理,你所期望发生的事情不能在语言上被称为“例外”.
>保留对实际关键问题使用任何例外情况.

题:
如果我要重写该实用程序,以满足我对实用程序编写者过度使用异常的烦恼,那么解决这种困境的最佳方法是什么?这将对待不可接受的字符串,但满足我的意识形态反对过度使用例外.

我解决这个问题的直接思路是

>整数解析(String,Delegate)

由于Java语言中代表人员的缺席使得Java变得虚弱/贫困,我会这样做

>整数解析(String value,CallBack unacceptedParseCallback);

哪里

public interface CallBack<T,S> {
  T mitigate(S value);
}

>回调可以为null,但只有在需要回调缓解但未提供时才会抛出NumberFormatException.

但是,我怀疑我的快速和肮脏的解决方案是避免使用异常的最佳方法.我可以使用哪些替代算法来解决我对过度依赖异常的意识形态分歧?在我开始编写这样的实用程序库之前.

解决方法

你正在寻找的是Maybe monad,它是作为Java 8中的Optional接口实现的.这是一种经过实践验证的方法,如果在组合链中的任何地方可能出现“异常”,它将促进面部功能的组合.

上面提到的一个警告是,完整的API必须支持Maybe monad才能真正有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读