例外点是沟通 exceptional 情况 .

从这个意义上讲:如果你的例子中所有条件都是假的绝对意外,并且没有有效的返回值来表明这种情况,那么抛出RuntimeException是合理的做法;但我可能会将消息更改为:

throw new RuntimeException("All conditions failed: " + some data)

如上所述:它是关于沟通;在这种情况下,调试问题的人 . 因此,在此处包含所需信息可能会有所帮助,以便了解为什么所有这些检查结果都是 false .

关键是:该方法有 Contract ;该 Contract 应包括此类细节 . 含义:如果该方法是公共的,您应该添加一个带有清晰描述的@throws RuntimeException .

在这种情况下使用RuntimeException也是一种有效的做法;正如您所做的那样 not 想要污染您的方法签名,并在整个地方使用已检查的例外 .

编辑:当然,需要 balancer . 示例:我的类通常如下所示:

public class Whatever {

private final Foo theFoo;

public Whatever(Foo theFoo) {

Objects.requireNonNull(theFoo, "theFoo must not be null");

this.theFoo = theFoo;

所以,我的构造函数可能会抛出一个NPE;是 . 但是:只有那里 . 我的所有方法都可以依赖于所有字段都被初始化为非null的事实;它们是最终的,所以它们总是非空的 .

含义:必须保持合理;并“发展”一种感觉:哪些问题是特殊但可能的;哪些是不可能的,你不会污染你的代码到处检查它们 .

最后;只是为了明确这一点 - 添加例外仅仅是等式的一部分 . 什么东西抛出,那么你需要 grab 一些东西!因此,如上所述: balancer 进来 . 无论你在代码中做什么都必须"add value" . 如果您的代码没有't fulfill a clear, defined purpose, then chances are: you don' t需要它!

java 异常何时抛出_何时适合抛出异常?相关推荐

  1. java 异常捕获抛出_JAVA异常处理捕获与抛出原理解析

    JAVA 异常 当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常.异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常. 这个时候,JAVA 就提供了优秀的处理方法:异常处理 ...

  2. java自定义异常及异常的抛出

    java自定义异常及异常的抛出 参考文章: (1)java自定义异常及异常的抛出 (2)https://www.cnblogs.com/gemiaomiao/p/11900564.html 备忘一下.

  3. java 是否继续_Java异常被抛出或被捕获之后,代码是否继续执行的问题

    在写程序的时候,我们经常被教导,要对异常的信息进行处理,哪里该抛出异常.但是,更多的时候,我们只是模仿异常的抛出,却不知道为什么要这样抛异常(被catch了?被向上抛了?后面的代码是否执行了?). 接 ...

  4. 将不确定变为确定~异常被抛出的顺序

    回到目录 在程序中,为了保正代码的严禁性我们会在需要的地方加个try...cache块,作用是对一个已知或者未知的异常进行捕获,这是正常的,任何一种面向对象的语言都提供了这个基础的功能,C#也不例外, ...

  5. SpringMvc的 @Valid 拦截到的异常如何抛出

    SpringMvc的 @Valid 拦截到的异常如何抛出 参考文章: (1)SpringMvc的 @Valid 拦截到的异常如何抛出 (2)https://www.cnblogs.com/acm-bi ...

  6. java捕获定时器抛出的异常_详细了解Java中定时器Timer的使用及缺陷分析

    在需要定时并且周期执行任务时,在最初的JAVA工具类库中,Timer可以实现任务的定时周期执行的需求,不过有一定的缺陷,比如,Timer是基于绝对时间而非相对时间,因此Timer对系统时钟比较敏感,本 ...

  7. java声明异常必须抛出吗_简述java中抛出异常的两种方式

    java编程中经常遇到异常,这时就需要利用java中的异常抛出机制,在java中提供了两种抛出异常的方法:try{}  catch() {}和throw. 一.抛出异常的两种方式 (1) 首先我们来看 ...

  8. Java throw:异常的抛出

    到目前为止,你只是获取了被Java运行时系统抛出的异常.然而,程序可以用throw语句抛出明确的异常.Throw语句的通常形式如下: throw ThrowableInstance; 这里,Throw ...

  9. java 在方法中抛出异常_Java异常的抛出

    在Java中,当定义的方法可能产生异常时,程序员必须抛出可能的异常. 抛出异常的两种方式,一是在方法内部用throw语句,二是在方法定义时用throws关键字 1.throw语句 在Java中,thr ...

最新文章

  1. 专治选择综合征——Bandit算法
  2. 盘点丨毕业年薪34万,高校人工智能研究哪家强?
  3. 收藏 | 数据分析师最常用的10个机器学习算法!
  4. cydia收费插件源_Cydia消失了怎么办 Cydia错误汇总介绍【图文】
  5. 如何做好新一年的产品规划?
  6. GNU gcc的编译工具用法(转)
  7. 微博自媒体,一个新的生态
  8. ambari 自定义组件安装
  9. AngularJS 事件
  10. 多C++标准版本指定
  11. 美团科技 Java工程师_美团Java工程师面试题(2018秋招)
  12. 【数据大神必看】微信又添新功能!这个微信群可以学英语,而且全程免费
  13. 属性值动态调整_【VBA】Range对象的常用方法属性(三)
  14. 海洋大数据关键技术及在灾害天气下船舶行为预测上的应用
  15. 东大OJ-1544: GG的战争法则
  16. img 图片找不到时,设置显示默认图片
  17. Java语言实现矩阵卷积运算
  18. 数据分析神经网络模型图,神经网络模型数据处理
  19. pregnant用法
  20. Google Maps 图标

热门文章

  1. Ruby中求50之内的素数方法
  2. Oracle to_char格式化函数
  3. Delphi 2010 安装及调试
  4. Windows Server AppFabric Caching
  5. golang interface 转 int string slice struct 类型
  6. golang 切片 数组 洗牌
  7. tomcat 修改默认访问根目录
  8. linux 内核编译错误 gcc: error: elf_i386: No such file or directory
  9. linux c 打印错误信息error errno perror和strerror的区别
  10. VS2010 运行速度加快方法