Java 条件抛出异常

Java 条件抛出异常,java,exception-handling,Java,Exception Handling,如何确保在使用1检查条件时,它不会在第一次抛出异常,并允许检查所有条件,然后抛出与“数字已添加”的第一个条件相关的异常 class你好 { List newExample=newarraylist(); 列表示例=新建Arraylist(); 示例.添加(1); 示例.添加(2); 示例.添加(3); public void addExample() { for(整数示例) { pl.添加(ex); } } 公共void添加(整数示例) { if(example==1)//一些解决方法使示例(2

如何确保在使用1检查条件时,它不会在第一次抛出异常,并允许检查所有条件,然后抛出与“数字已添加”的第一个条件相关的异常

class你好
{
List newExample=newarraylist();
列表示例=新建Arraylist();
示例.添加(1);
示例.添加(2);
示例.添加(3);
public void addExample()
{
for(整数示例)
{
pl.添加(ex);
}
}
公共void添加(整数示例)
{
if(example==1)//一些解决方法使示例(2,3)列表的其余部分有机会执行。
{ 
抛出新的NumberReadyAddedException(“已添加编号”)
}
newExample.add(示例);
}
} 

我认为在您的情况下,您应该在接收/向列表中添加值的时间点检查重复输入。我稍微修改了您的代码,以便在您将要向列表中添加值时检查重复的值,如果发现该值是重复的,则立即抛出一个错误:

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{}
import java.util.*;
同学们好{
列表检查=新建ArrayList();
public void execute()引发异常{
增加(1);
增加(2);
增加(3);
增加(1);
例如(例如:考试){
测试(ex)
}
}
public void add(整数值)引发IllegalArgumentException{
if(检查包含(值)){
抛出新的IllegalArgumentException(“已添加编号”);
}
增加(价值);
}
公共无效测试(示例){
System.out.println(“对示例运行测试:“+Example”);//pl.test(ex);
}
公共静态void main(字符串[]args){
Hello Hello=新的Hello();
您好,添加(1);
您好,添加(2);
您好,添加(3);
您好,添加(1);
}
}
类示例{}

您的代码没有多大意义。
for
循环是在任何方法之外定义的,
示例
是未定义的。。。我甚至不理解你的问题-
允许检查所有条件
,你是什么意思?示例还是考试?这是不可读的,问题不可理解对不起。谢谢你的回答。我已经用同样的方法实现了,但我遇到了一个问题,如果值(1,2,3)是按排序顺序排列的,例如LinkedHashSet,并且在我第一次检查时,如果我得到异常,那么我的剩余值将不会超过(2,3)。我想在获得异常后执行其余的值。是否有任何解决方法。当然,每次添加新值时都要使用try/catch。捕获异常,打印出错误并继续。类似于'try{hello.add(1);}catch(Exception ex){System.out.println(ex.getMessage());}。。这个网站上有很多例子,或者网上有很多教程,展示了如何进行“java异常处理”
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{}