如何组合异常以摆脱重复代码?

时间:2014-02-12 00:48:49

标签: java exception space-efficiency

如何最小化代码中重复的异常抛出代码:

public R get(int index) throws IndexException {
  if (!((0 <= index) && (index < this.info.length))) {
    throw new IndexException();
  }
  return this.info[index];
}

public void set(int index, R r) throws IndexException {
  if (!((0 <= index) && (index < this.info.length))) {
    throw new IndexException();
  }
  this.info[index] = r;
}

2 个答案:

答案 0 :(得分:5)

创建一个抛出异常的方法:

private void checkBounds(int index) throws IndexException {
  if (index < 0 || index >= info.length) {
     throw new IndexException();
  }
}

然后你可以打电话给它:

public R get(int index) throws IndexException {
  checkBounds(index);
  return this.info[index];
}

public void set(int index, R r) throws IndexException {
  checkBounds(index);
  this.info[index] = r;
}

答案 1 :(得分:1)

这很容易做到,但我建议使用现有的方法:

 checkElementIndex(index, this.info.length)

来自Guava的Preconditions