я имею эту программу в 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");
}
}
сейчас, удивительно это работает без каких-либо ошибок в-несмотря на отсутствие попытки поймать блок или брошенной в пункте основного метода.
1. Почему a.eat()
не дает никаких ошибок в основном методе?
2. Когда я меняю IndexOutOfBoundsException
на просто Exception
, это ошибка времени компиляции. Зачем ?
прочитайте что-нибудь об этом в руководстве по экзаменам SCJP в kathy sierra, но не смогли понять концепцию здесь.
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