Prog 1: если мы используем Checked Exception, программа не скомпилируется
Здесь у класса Student есть метод «tt», который генерирует исключение ClassNotFoundException, которое является проверенным исключением в java.
Класс Test расширяет класс Student и переопределяет метод «tt». На этот раз вместо использования try/catch я пытаюсь использовать ключевое слово throws.
Результатом является сбой времени компиляции.
class Student{
public void tt(){
try {
throw new ClassNotFoundException();
}
catch(ClassNotFoundException e) {
}
}
}
class Test extends Student {
public void tt() throws ClassNotFoundException{
}
}
Prog 2: Если мы используем Unchecked Exception, профиль компилируется и работает нормально.
В том же классе Student есть метод «tt», который генерирует исключение NullPointerException, которое является непроверенным исключением в java.
Класс Test расширяет класс Student и переопределяет метод «tt». На этот раз вместо использования try/catch я пытаюсь использовать ключевое слово throws.
Результат – успешный забег. Приведенная ниже программа работает без каких-либо проблем.
class Student{
public void tt(){
try {
throw new NullPointerException();
}
catch(NullPointerException e) {
}
}
}
class Test extends Student {
public void tt() throws NullPointerException{
}
}
Любые выводы приветствуются. Спасибо!
Student
и я вызываюtt
, не требуется try-catch. Теперь, если фактический объект былTest
, что должно произойти? Это был бы беспорядок. - person Ole V.V.   schedule 26.12.2018