Inhaltsverzeichnis
Sollte dieselbe Ausnahme oder denselben Untertyp auslösen.
Beispiel
Ausgabe
sollte keine Superklassen-Ausnahmen auslösen
Kompilierungszeitfehler
Wirft keine Ausnahme aus
Heim Java javaLernprogramm Welche Regeln gelten für die Methodenabdeckung und Ausnahmebehandlung in Java?

Welche Regeln gelten für die Methodenabdeckung und Ausnahmebehandlung in Java?

Sep 06, 2023 pm 06:29 PM
异常处理(exception handling) 继承(inheritance) Methodenabdeckung: überschreiben Methodenüberschreibung Ausnahmebehandlung: Ausnahme Try-Catch-Block

Welche Regeln gelten für die Methodenabdeckung und Ausnahmebehandlung in Java?

Beim Überschreiben einer Superklassenmethode müssen Sie bestimmte Regeln befolgen, wenn die Methode eine Ausnahme auslöst.

Sollte dieselbe Ausnahme oder denselben Untertyp auslösen.

Wenn eine Methode der Oberklasse eine bestimmte Ausnahme auslöst, sollte die Methode in der Unterklasse dieselbe Ausnahme oder denselben Untertyp auslösen.

Beispiel

Im folgenden Beispiel löst die readFile()-Methode der Oberklasse eine IOException aus, während die readFile()-Methode der Unterklasse eine FileNotFoundException auslöst.

Da die FileNotFoundException-Ausnahme ein Untertyp von IOException ist, kann das Programm ohne Fehler kompiliert und ausgeführt werden.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
abstract class Super {
   public String readFile(String path) throws IOException {
      throw new IOException();
   }
}
public class ExceptionsExample extends Super {
   @Override
   public String readFile(String path) throws FileNotFoundException {
      Scanner sc = new Scanner(new File("E://test//sample.txt"));
      String input;
      StringBuffer sb = new StringBuffer();
      while (sc.hasNextLine()) {
         input = sc.nextLine();
         sb.append(" "+input);
      }
      return sb.toString();
   }
   public static void main(String args[]) {
      String path = "E://test//sample.txt";
      ExceptionsExample obj = new ExceptionsExample();
      try {
         System.out.println(obj.readFile(path));
      }catch(FileNotFoundException e) {
         System.out.println("Make sure the specified file exists");
      }
   }
}
Nach dem Login kopieren

Ausgabe

Tutorials Point is an E-learning company that set out on its journey to provide knowledge to that class of readers that responds better to online content. With Tutorials Point, you can learn at your own pace, in your own space. After a successful journey of providing the best learning content at tutorialspoint.com, we created our subscription based premium product called Tutorix to provide Simply Easy Learning in the best personalized way for K-12 students, and aspirants of competitive exams like IIT/JEE and NEET.
Nach dem Login kopieren

Beispiel

Wenn die Unterklasse dieselbe Ausnahme wie die Oberklasse auslöst, wird das Programm ebenfalls erfolgreich kompiliert und ausgeführt.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
abstract class Super {
   public void sampleMethod()throws FileNotFoundException {
      System.out.println("Method of superclass");
   }
}
public class ExceptionsExample extends Super {
   public void sampleMethod()throws FileNotFoundException {
      System.out.println("Method of Subclass");
   }
   public static void main(String args[]) {
      ExceptionsExample obj = new ExceptionsExample();
      obj.sampleMethod();
   }
}
Nach dem Login kopieren

Ausgabe

Method of Subclass
Nach dem Login kopieren
Nach dem Login kopieren

sollte keine Superklassen-Ausnahmen auslösen

Wenn eine Superklassenmethode eine Ausnahme auslöst, sollten Methoden in Unterklassen ihre Superklasse nicht auslösen.

Beispiel

Im folgenden Beispiel löst die readFile()-Methode der Oberklasse eine FileNotFoundException-Ausnahme aus, während die readFile()-Methode der Unterklasse eine IOException-Ausnahme auslöst, die die Oberklasse von FileNotFoundException ist.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
abstract class Super {
   public String readFile(String path)throws FileNotFoundException {
      throw new FileNotFoundException();
   }
}
public class ExceptionsExample extends Super {
   @Override
   public String readFile(String path)throws IOException {
      //method body ......
   }
}
Nach dem Login kopieren

Kompilierungszeitfehler

Beim Kompilieren gibt das obige Programm die folgende Ausgabe aus:

ExceptionsExample.java:13: error: readFile(String) in ExceptionsExample cannot override readFile(String) in Sup
   public String readFile(String path)throws IOException {
                 ^
   overridden method does not throw IOException
1 error
Nach dem Login kopieren

Wirft keine Ausnahme aus

Wenn die übergeordnete Klassenmethode eine Ausnahme auslöst, können Sie diese überschreiben, ohne eine Ausnahme auszulösen.

Beispiel

Im folgenden Beispiel löst die Methode „sampleMethod()“ der übergeordneten Klasse eine FileNotFoundException-Ausnahme aus, während die Methode „sampleMethod()“ der Unterklasse überhaupt keine Ausnahme auslöst. Dennoch lässt sich das Programm fehlerfrei kompilieren und ausführen.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
abstract class Super {
   public void sampleMethod()throws FileNotFoundException {
      System.out.println("Method of superclass");
   }
}
public class ExceptionsExample extends Super {
   public void sampleMethod() {
      System.out.println("Method of Subclass");
   }
   public static void main(String args[]) {
      ExceptionsExample obj = new ExceptionsExample();
      obj.sampleMethod();
   }
}
Nach dem Login kopieren

Ausgabe

Method of Subclass
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWelche Regeln gelten für die Methodenabdeckung und Ausnahmebehandlung in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösungen zur Lösung von Java-Assertion-Ausnahmen (AssertionError) Lösungen zur Lösung von Java-Assertion-Ausnahmen (AssertionError) Aug 25, 2023 pm 03:06 PM

Lösungen zum Lösen von Java-Assertion-Ausnahmen (AssertionError) In der Java-Entwicklung sind Assertionen ein häufig verwendetes Debugging-Tool. Mithilfe von Zusicherungen können wir einige Bedingungen in den Code einfügen, um sicherzustellen, dass das Programm bei der Ausführung die erwarteten Bedingungen erfüllt. Manchmal kann es jedoch zu einer Java-Assertionsausnahme (AssertionError) kommen, was bedeutet, dass die Assertionsbedingung nicht erfüllt ist und das Programm eine Ausnahme auslöst. Behauptungsausnahmen treten normalerweise auf, weil Annahmen über den Code während des Entwurfs falsch sind oder

So lösen Sie das Problem der hierarchischen Codebeziehung in der C++-Entwicklung So lösen Sie das Problem der hierarchischen Codebeziehung in der C++-Entwicklung Aug 22, 2023 am 11:22 AM

So lösen Sie das Problem der hierarchischen Codebeziehungen in der C++-Entwicklung. Bei der Entwicklung komplexer C++-Programme ist die Verwaltung hierarchischer Codebeziehungen ein häufiges Problem. Falsche Hierarchien können das Lesen, Warten und Erweitern von Code erschweren. Um dieses Problem zu lösen, können wir die folgenden Strategien anwenden. Erstens können wir eine geeignete Verzeichnisstruktur verwenden, um die Codedateien zu organisieren. Durch eine gute Verzeichnisstruktur können Codedateien geordneter angeordnet werden, sodass wir zugehörigen Code während des Entwicklungsprozesses schneller finden oder ändern können. Im Allgemeinen wird dies empfohlen

Lösungen für häufige Probleme bei der Wiederverwendung von Code in C++ Lösungen für häufige Probleme bei der Wiederverwendung von Code in C++ Oct 09, 2023 pm 01:50 PM

Lösungen für häufige Probleme bei der Wiederverwendung von Code in C++ In der C++-Programmierung ist die Wiederverwendung von Code eine wichtige Technologie, die die Entwicklungseffizienz und die Wartbarkeit des Codes verbessern kann. Wir stoßen jedoch häufig auf einige häufige Probleme bei der Wiederverwendung von Code, z. B. wiederholte Codefragmente, komplexe Vererbungsbeziehungen usw. In diesem Artikel werden mehrere gängige Methoden zur Lösung dieser Probleme vorgestellt und spezifische Codebeispiele bereitgestellt. Funktionskapselung Die Funktionskapselung ist eine gängige Methode zur Wiederverwendung von Code. Durch die Kapselung eines Codeabschnitts in einer Funktion kann dieser mehrmals an anderen Stellen aufgerufen werden, um das wiederholte Schreiben desselben Codes zu vermeiden.

Abstrakte Klassen in Java Abstrakte Klassen in Java Sep 22, 2023 am 11:53 AM

Eine Klasse, die das Schlüsselwort abstract in ihrer Deklaration enthält, wird abstrakte Klasse genannt. Eine abstrakte Klasse kann abstrakte Methoden enthalten oder auch nicht, d. h. Methoden ohne Körper (publicvoidget();). Wenn eine Klasse jedoch mindestens eine abstrakte Methode hat, muss die Klasse als abstrakt deklariert werden. Wenn eine Klasse als abstrakt deklariert ist, kann sie nicht instanziiert werden. Um eine abstrakte Klasse zu verwenden, müssen Sie sie von einer anderen Klasse erben und Implementierungen der darin enthaltenen abstrakten Methoden bereitstellen. Wenn Sie von einer abstrakten Klasse erben, stellen Sie Implementierungen für alle darin enthaltenen abstrakten Methoden bereit. Beispiele In diesem Abschnitt finden Sie Beispiele für abstrakte Klassen. Um eine abstrakte Klasse zu erstellen, verwenden Sie einfach das Schlüsselwort abstract vor dem Schlüsselwort class in der Klassendeklaration. /*Dateiname:Emplo

Wie gehe ich mit Parallelitätsfehlern in PHP um? Wie gehe ich mit Parallelitätsfehlern in PHP um? Dec 18, 2023 am 08:24 AM

Wie gehe ich mit Parallelitätsfehlern in PHP um? Bei der Entwicklung von Webanwendungen stoßen wir häufig auf Probleme mit Parallelitätsfehlern. Parallelitätsfehler beziehen sich auf Probleme, die auftreten können, wenn mehrere Benutzer gleichzeitig auf denselben Code zugreifen, z. B. Datenbank-Deadlock, Ressourcenkonkurrenz usw. Um die Korrektheit und Leistung des Codes sicherzustellen, müssen wir einige Maßnahmen ergreifen, um Parallelitätsfehler zu behandeln. Hier finden Sie einige Möglichkeiten zur Behandlung von Parallelitätsfehlern, einschließlich spezifischer Codebeispiele. Spezifischer Beispielcode für die Verwendung von Datenbanktransaktionen: try{$pdo->beginTran

Ausnahmebehandlung in Golang Ausnahmebehandlung in Golang Jul 24, 2023 pm 03:20 PM

Golang hat viele Vorteile, die in früheren Artikeln erwähnt wurden, aber es gibt auch viele Mängel, die Gopher kritisiert hat, insbesondere die Fehlerbehandlung. Bevor wir über Fehler und Ausnahmen sprechen, sprechen wir über zwei Konzepte: Fehlerbehandlung: Fehler gehören zum Geschäft und sind vorhersehbar. Ausnahmebehandlung: nicht Teil des Geschäfts, unvorhergesehen.

So lösen Sie Sicherheitsprobleme in Java So lösen Sie Sicherheitsprobleme in Java Jul 01, 2023 am 11:13 AM

So lösen Sie Sicherheitsprobleme in Java. Einführung: Mit der Popularität und Entwicklung des Internets ist Java zu einer der am häufigsten verwendeten Programmiersprachen geworden. Aufgrund seiner Offenheit und Beliebtheit werden Java-Programme jedoch häufig von Hackern angegriffen. In diesem Artikel werden einige häufige Java-Sicherheitsprobleme vorgestellt und untersucht, wie diese gelöst werden können, um unsere Anwendungen vor Angriffen zu schützen. Einführung: Bei der Java-Entwicklung umfassen Sicherheitsprobleme hauptsächlich Datenlecks, Authentifizierung und Autorisierung, Ausnahmebehandlung und Code-Injection. unten, ich

Wie führt man objektorientierte Programmierung in C++ durch? Wie führt man objektorientierte Programmierung in C++ durch? Aug 27, 2023 am 08:34 AM

Wie führt man objektorientierte Programmierung in C++ durch? Objektorientierte Programmierung (OOP) ist ein sehr verbreitetes und wichtiges Softwareentwicklungsparadigma. C++ ist eine Multiparadigmen-Programmiersprache, die objektorientierte Programmierung unterstützt. In C++ können wir durch die Konzepte von Klasse und Objekt leicht objektorientierte Programmierung implementieren. Zuerst müssen wir eine Klasse definieren. Klasse ist ein Brauch

See all articles