ArrayStoreException extends RuntimeException, so it's unchecked
IllegalArgumentException extends RuntimeException, so it's unchecked

Simply.... if it extends RuntimeException or Error it's unchecked, otherwize it's checked.

The unchecked exception classes are the run-time exception classes and the error classes.The checked exception classes are all exception classes other than the unchecked exception classes.

Java Language Spec 11.1.1 The Kinds of Exceptions

Edited 2 Years Ago by JamesCherrill

but when illegal argument occured in program then program does not compile why?????????????????

code is following

class Run
{
    int b;
    public void get(int a)
    {
        b=a;
    }
}
class ArgumentException
{

    public static void main(String s[])
    {

        Run ob=new Run();
        ob.get(0.23);
    }
}

and error message

ArgumentException.java:16: error: method get in class Run cannot be applied to g
iven types;
                ob.get(0.23);
                  ^
  required: int
  found: double
  reason: actual argument double cannot be converted to int by method invocation
 conversion
1 error

That has absolutely NOTHING to do with Exceptions.
The method needs an int parameter, and you passsed a double.

You use an IllegalArgumentException when the parameter is of the right kind (compiles OK) but its value is illegal. eg parameter isDate dateOfBirth, the value passed is a date, but it's a date in the future. Or,the parameter is double price, the value passed is a number, but its <0.0

Edited 2 Years Ago by JamesCherrill

please write a code that demonstrate IllegalArgumentException and arise exception at execution time

void setPrice(double newPrice) throws IllegalArgumentException  {
   if (price < 0.0) 
      throw new IllegalArgumentException("Price must be >= 0.0");
   ...
   ...
}

Now calling setPrice with a negative parameter will result in a IllegalArgumentException being thrown at run time.

Edited 2 Years Ago by JamesCherrill

i understand it but this is handled IllegalArgumentException i need a code that give unhandled IllegalArgumentException

I just showed how an IllegalArgumentException is created and thrown.

Because it's an unchecked exception you can handle it (via try/catch or by declaring your method as throws IllegalArgumentException) or you can ignore it and allow your program to crash when it is thrown.

handled/unhandled is not an attribute of the exception, it's an attribute of the code that can cause the execption to be thrown.

Edited 2 Years Ago by JamesCherrill

This question has already been answered. Start a new discussion instead.