只针对异常的状况才使用异常(57)

  • 数组遍历,使用catch 异常的方式终止循环,不要这样作

  • 标准方式多好

误觉得第一种方法会提高性能,这种想法错误有三:api

  1. 异常机制的设计初衷是为了用于不正常情形,因此不多有JVM 设计会对其进行优化
  2. 代码放入 try...catch 里面反而阻止了 现代jvm的优化动做
  3. 标准模式不会致使冗余的检查,有些现代jvm 实现会把他优化掉

实际上,现代 JVM 异常模式比标准模式慢得多数组

  • 基于异常的循环模式,模糊了代码意图、下降了性能、不能保证正常工做
  • 出现了不相关的异常,可能隐藏bug ,增长调试复杂度(好比,try 内调用别的数组,致使越界,这个异常不但被吃掉、数组遍历也会提早结束)

异常仅仅使用在异常状况下,他们永远不该该用于正常的控制流并发

  • 设计良好的api 不该该强迫他的客户端,使用异常来控制正常的流程

请不要这样作,老老实实的使用 hasNext()判断jvm

状态测试方法 函数

  • 若是一个类具备一个“状态相关”的方法,既只有在特定的条件下才能够被调用的方法,那么这个类每每也应该有一个单独的“状态测试”方法,既只是是否能够调用第一个方法。例如:Iterator类的hasNext就是一个“状态测试”方法

可被识别的返回值 性能

  • 返回值。咱们经常使用函数的返回值来标志成功或者失败,甚至是失败的缘由

状态测试方法 语义明确,相同条件下优先使用测试

  • 但在牵涉到外部未被同步的并发调用时,请使用可被识别的返回值 
相关文章
相关标签/搜索