我如何正确处理这些例外?

时间:2012-11-02 20:28:45

标签: exception testing junit exception-handling

在下面的方法中,我需要处理是否传入null,但我不确定如何。我该如何处理这个方法,这个方法将通过JUnit测试?

     public Album(String name) {

     if(name==null){

        // what do I do here?
     }
     this.name = name;
     this.images = new ArrayList<Image>();


     }

在这种方法中,如果传入的索引是负数还是大于它所来自的数组列表的大小,我该如何处理呢?

    public Image getImage(int index) {
    if (index < 0 || index > images.size()) {

          // how to handle here?

    }
        return images.get(index);

}

我已经为两者尝试过各种各样的东西,但这些方法仍然无法进行JUnit测试。感谢您提供给我的任何意见。

1 个答案:

答案 0 :(得分:0)

if(name==null){
     throw new IllegalArgumentException("name");
}

虽然我个人认为直接投掷NullPointerException没有任何问题。

if (index < 0 || index > images.size()) {
  throw new ArrayIndexOutOfBounds(index);
}

但你知道吗? images.get(index)也会抛出它,所以不要先打扰它。减少阅读和测试的代码。事实上你已经犯了一个错误。您的前提条件是index等于images.size()。应该有index >= images.size()