我在Java是這裏拋出的異常嗎?
public class PolyTest
{
public static void main(String... arg)
{
Animal a = new Animal();
Horse b = new Horse();
Animal c = new Horse();
a.eat();
b.eat();
c.eat();
}
}
class Animal
{
public void eat() throws IndexOutOfBoundsException
{
System.out.println("Animal Eating");
}
}
class Horse extends Animal
{
@Override
public void eat()
{
System.out.println("Horse Eating");
}
}
有這個程序現在,令人驚訝它的工作原理沒有,儘管沒有try catch塊的任何錯誤或拋出子句中的主要方法。
1.爲什麼a.eat()
在主要方法中沒有給出任何錯誤?
2.當我將IndexOutOfBoundsException
更改爲Exception
時,這是編譯時錯誤。爲什麼?
在kathy sierra的SCJP考試指南中閱讀了這篇文章,但無法理解這裏的概念。
IndexOutOfBoundsException是一個RuntimeException,因此它不需要特殊處理。 – wxyz
IndexOutOfBoundsException是一個RuntimeException。請參閱http://stackoverflow.com/questions/2190161/difference-between-java-lang-runtimeexception-and-java-lang-exception。 – jarmod
可能的重複[運行時異常沒有編譯錯誤。爲什麼?](http://stackoverflow.com/questions/6150609/no-compilation-error-on-runtime-exceptions-why) – Mat