Это мой кодовый блок.
class Alpha{
public void Gamma() {
System.out.println("Alphas");
}
}
class Beta extends Alpha{
public void Gamma() throws Exception //Line 1
{
try {
System.out.println("Betas");
} catch(Exception e) {
System.out.println("Exception caught");
} finally {
System.out.println("xfg");
}
}
public static void main(String[] args) throws Exception {
Alpha g = new Beta();
g.Gamma();
}
}
Этот код не скомпилируется, потому что я добавил "броски" в Line1.
Компилятор жалуется, что переопределенные методы не могут генерировать исключения.
Почему так?.
Зачем использовать переопределенный метод для исключения?
Потому что я могу переопределить метод из базового класса, добавив n строк кода в реализацию дочернего класса.
И этот добавленный код может вызвать исключение, поэтому почему я не могу использовать "броски" в переопределенном методе?.