如何确保在第一次检查条件为1时不会抛出异常,并允许检查所有条件,然后抛出与“已添加数量”的第一个条件相关的异常。
class Hello
{
List<Integer> newExample=new Arraylist<Integer>();
List<Integer> example=new Arraylist<Integer>();
example.add(1);
example.add(2);
example.add(3);
public void addExample()
{
for(Integer ex: example)
{
pl.adding(ex);
}
}
public void adding(Integer example)
{
if(example==1)//some work around so that rest of list of example (2,3) get chance to execute.
{
throw new NumberAlreadyAddedException("Number is already added")
}
newExample.add(example);
}
}
答案 0 :(得分:0)
我相信在你的情况下,你应该在接收/添加值到列表的时间点检查重复输入。我稍微修改了您的代码,以便在您要将值添加到List中时检查重复项,如果发现该值是重复的,则立即抛出错误:
import java.util.*;
class Hello{
List<Example> exam = new ArrayList<Example>();
public void execute() throws Exception{
add(1);
add(2);
add(3);
add(1);
for(Example ex:exam){
test(ex)
}
}
public void add(Integer value) throws IllegalArgumentException{
if(exam.contains(value)){
throw new IllegalArgumentException("Number is already added.");
}
exam.add(value);
}
public void test(Example example){
System.out.println("Running test on Example: " + example);//pl.test(ex);
}
public static void main(String[] args){
Hello hello = new Hello();
hello.add(1);
hello.add(2);
hello.add(3);
hello.add(1);
}
}
class Example{}