Когда я впервые изучал обработку исключений Java, я вспоминаю несколько предложений об обращении с исключениями из родителей и сына: «Метод детского класса может бросить только исключения или исключения для дочерних людей, брошенных методом родительского класса, и конструктор класса дочернего класса должен бросить исключения или родительские исключения из конструктора родительского класса». В то время я не знал, почему метод подкласса должен был сделать такие исключения. Позже, изучая «мышление на яве», я понял правду. Теперь я рассмотрю это.
1. Методы подкласса могут только исключать исключения из методов родительского класса или их детских исключений.
Для этого ограничения это происходит главным образом потому, что подклассы не могут правильно улавливать исключения, когда они претерпевают восходящее преобразование
Package IndingJava; открытый абстрактный класс inningdemo1 {public void walk () throws baseexception {} public rastic void sing () throws baseexception;} класс Baseexception расширяет исключение {} class subexception1 Extends baseexception {} cupexception extends exception {} Packence IndingJava; Public Interface OtherFunction {public void Task () Throws RuntimeException;} PackageNkingInjava; открытый класс SubinningDemo1 Extens InningDemo1 реализует другие функции {// методы подкласса могут добавлять исключения из метода родительского класса @Override public void walk () бросает BaseException {} // Но исключения, которые не являются родительским классом, не может быть выпущено, иначе может быть ошибка в Sublication /// public walk () TRAS TRAS TRAS TROWS (). Исключения метода родительского класса @Override public void Sing () Throws Subexception1 {} // Когда реализованный интерфейс и методы в родительском классе имеют исключения, вы можете не выбрасывать исключения public void task () {}}Возьмите этот пример в качестве примера. Если этот метод в подклассном public void walk () бросает CupException {}, исключение, которое не имеет метода родительского класса, является добавлено. Мы используем ссылку на родительский класс, чтобы указывать на детский класс.
public void f () {inningdemo1 inn = new subinningdemo1 (); inn.walk (); // Когда родительский класс называет метод Walk (), он не знает, что он бросит CupException, поэтому метод f () не знает, как поймать исключение. Следовательно, в течение периода компиляции методы подкласса должны быть предотвращены случайным образом бросить исключения. }Из приведенного выше примера мы также можем увидеть, что метод подкласса не может сделать исключения
2. Конструктор подкласса должен бросить исключение или его родительское исключение.
Это связано с тем, что конструктор подкласса добавляется по умолчанию к конструктору родительского класса.
Packence IndingJava; открытый абстрактный класс inningdemo2 {public inningDemo2 () Throws Subexception {}} Class Fatherexception Extends Exception {} Class Subxception Extens Fatherexception {} класс Penexception Extends Exception {} PackageNkingInjava; открытый класс SuinningDemo2 расширяет inningdemo2 {public subinningDemo2 (), который вызывает fatherexception {// Конструктор родительского класса добавляется по умолчанию в конструкторе подкласса, поэтому исключение из родительского класса или его родительского исключения должно быть добавлено // super (); }}3. Аномальная потеря
1. Выбросьте исключение, наконец, исключение может быть потеряно.
Package IndingJava; public class наконец -то Exception {public static void main (string [] args) {try {try {Throw New RedException (); } наконец {// покрыть предыдущее исключение, бросая новое BlueException (); }} catch (Exception e) {System.out.println (e); }}} класс RedException Extends Exception {} класс BlueException Exceptends Exception {}Результат бега: мышление injava.blueexception
2. Используйте возврат, наконец, никаких исключений не брошено
Package IndingJava; открытый класс returnException {public static void main (string [] args) {try {Thress New Exception (); } наконец {return; }}}Мы видим, что это бросает исключение, но при запуске не будет выводов
В приведенной выше статье кратко обсуждается обработка исключений Java (обработка исключений отца-сына)-это весь контент, которым я делюсь с вами. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.