IllegalArgumentException在javaapi当中的描述是“抛出的异常表明向方法传递了一个不合法或不正确的参数”。但是我做了一个例子却发现如果传递了非法的参数连编译都过不去。异常指的是运行时出现了问题,而现在连运行的机会都没有。
请大家告诉我IllegalArgumentException怎么用,什么时候用呀?请给我一个例子吧。
我的源代码如下:
public class ThrowableTest {
public static void show(int a) {
System.out.println(a);
}
public static void main(String args []) {
try {
Object test = new String("55");
show(test);//在这里会报错。
} catch (IllegalArgumentException e) {
System.out.println();
}
}
}

解决方案 »

  1.   

    public class ThrowableTest {
    public static void show(int a) {
    System.out.println(a);
    }
    public static void main(String args []) {
    try {
    Object test = new String("55");
    show(test);//你这里当然会报错了,你的show()方法需要传递的
                               //是一个int型,你这个属于"硬伤",异常不是这样用的.
    } catch (IllegalArgumentException e) {
    System.out.println();
    }
    }
    }
      

  2.   

    那IllegalArgumentException到底怎么用呢?给个例子好吗?
      

  3.   

    class Person{  private int age;  public void setAge(int age){
        if(age<1){
          throw new IllegalArgumentException("年龄不能小于1!");
        this.age = age;
      }}
      

  4.   

    int x =1 ,y = 0;
    try{
    x /= y;
    }
    catch(ArithmeticException ae)
    {ae.printStackTrac();}初学者,我的理解是这样的
    望指教!
      

  5.   

    好像4楼的例子不太合适吧,因为这样的话我完全可以定义一个自己的异常类。然后再抛出自定义的异常类的对象。不用写成throw new IllegalArgumentException("年龄不能小于1!");也可以呀?