Effective Java(Third Edition) item76:努力使失败保持原子性

待我称王封你为后i 2022-03-20 14:28 254阅读 0赞

一般而言,失败的方法调用应该使对象保持在被调用之前的状态。具有这种属性的方法被称为具有失败原子性(failure atomic)

  1. public Object pop() {
  2. if (size == 0)
  3. throw new EmptyStackException();
  4. Object result = elements[--size];
  5. elements[size] = null; // Eliminate obsolete reference
  6. return result;
  7. }

如果取消对初始大小(size)的检查,当这个方法企图从一个空栈中弹出元素时,它仍然会抛出异常。然而,这将会导致size域保持在不一致的状态(负数)之中,从而导致将来对该对象的任何方法调用都会失败。

用一句话解释就是,你报错可以,但是不要修改状态,后面还用得上呢。

发表评论

表情:
评论列表 (有 0 条评论,254人围观)

还没有评论,来说两句吧...

相关阅读