Have a look at this code:
try {
//Thread.sleep(600);
} catch (InterruptedException x) {}
It gives compilation error as:
exception java.lang.InterruptedException is never thrown in body of corresponding try statement.
But,
try {
//Thread.sleep(600);
} catch (Exception x) {} // This one gives no error.
Why is this so?