Heim Java javaLernprogramm Von Java geprüfte und nicht geprüfte Ausnahmen

Von Java geprüfte und nicht geprüfte Ausnahmen

Dec 28, 2016 am 10:45 AM

Java-Ausnahmen werden in zwei Typen unterteilt: geprüfte Ausnahmen und ungeprüfte Ausnahmen. Ein anderer Name ist Ausnahmen und Fehler.

Einfach ausgedrückt: Geprüfte können während der Ausführung wiederhergestellt werden, während ungeprüfte Ausnahmen Fehler sind, die nicht behandelt werden können.

geprüfte Ausnahme:

bedeutet ungültig und kann im Programm nicht vorhergesagt werden. Beispiel: Ungültige Benutzereingabe, Datei existiert nicht, Netzwerk- oder Datenbankverbindungsfehler. Dies sind alles externe Gründe und können nicht innerhalb des Programms gesteuert werden.

muss explizit im Code behandelt werden. Versuchen Sie beispielsweise, die Blockverarbeitung abzufangen, oder fügen Sie der Methode eine Throws-Beschreibung hinzu, um die Ausnahme in die obere Ebene des Aufrufstapels auszulösen.

Erbt von java.lang.Exception (außer java.lang.RuntimeException).

ungeprüfte Ausnahme:

zeigt einen Fehler an, einen logischen Fehler im Programm. Ist eine Unterklasse von RuntimeException, z. B. IllegalArgumentException, NullPointerException und IllegalStateException.

Es besteht keine Notwendigkeit, ungeprüfte Ausnahmen im Code zur Behandlung explizit abzufangen.

Erbt von java.lang.RuntimeException (und java.lang.RuntimeException erbt von java.lang.Exception).

Die geprüfte Ausnahme in Java muss explizit durch Try-Catch im Code abgefangen oder erneut ausgelöst werden. Wenn Sie diese Ausnahme nicht behandeln müssen, können Sie die Ausnahme einfach erneut auslösen Der Nachteil besteht darin, dass viele Leute es gewohnt sind, einen leeren Catch-Block direkt in den Code zu schreiben. Dies macht den Code nicht nur überflüssig und „hässlich“, sondern führt auch zu Problemen beim Debuggen und erhöht die Schwierigkeit der Codewartung. Einige Leute sagen daher, dass geprüfte Ausnahmen den Code ausführlicher machen und leere Catch-Blöcke bedeutungslos sind. Daher sollten geprüfte Ausnahmen aus dem Java-Standard entfernt werden. Beispielsweise gibt es in C# kein Konzept für geprüfte Ausnahmen und C# erzwingt kein explizites Abfangen Ausnahmen.

Der Grund, warum Java-Ausnahmen in diese beiden Typen unterteilt werden, sollte in den folgenden Überlegungen liegen:

Überprüfte Ausnahmen können Entwicklern helfen, zu erkennen, welche Zeilen Ausnahmen verursachen können, da Javas API Es wurde erklärt welche Methoden aufgerufen werden dürfen, die eine Ausnahme auslösen können. Wenn es nicht verarbeitet wird, wird die Kompilierung bis zu einem gewissen Grad nicht bestanden. Mit diesem Ansatz können einige Fehler im Programm vermieden werden.

Zwei einfache Beispiele

  1. geprüfte Ausnahme

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class Main {
public static void main(String[] args) {
File f = new File("C:\test.txt");
FileReader r = new FileReader(f); //A
BufferedReader br = new BufferedReader(r);
br.readLine(); //B
br.close(); //C
}
}
Nach dem Login kopieren

Dieser Code kann nicht kompiliert werden, da A, Zeilen B und C löst eine IOException aus. Sie müssen diesen Code in einen Try-Catch-Block einfügen oder der Hauptmethode zum Kompilieren eine throws IOException hinzufügen.

2. Ungeprüfte Ausnahme

public class Main {
public static void main(String[] args) {
int a = 0;
int b = 100;
int c = b/a;
}
}
Nach dem Login kopieren

Kann kompiliert werden, aber bei der Ausführung wird ein Fehler gemeldet

Exception in thread “main” java.lang.ArithmeticException: / by zero
at Main.main(Main.java:13)
Nach dem Login kopieren

ArithmeticException ist eine ungeprüfte Ausnahme.

Benutzerdefinierte Ausnahme

1. geprüfte Ausnahme

Benutzerdefinierte Ausnahmeklasse InvalidUrlException

public class InvalidUrlException extends Exception {
public InvalidUrlException(String s){
super(s);
}
}
Nach dem Login kopieren
Nach dem Login kopieren
public class Main {
public static void getRemoteData(String url) throws InvalidUrlException{
if(isValidUrl(url)){
//获取远程数据
}
else
throw new InvalidUrlException("Invalid URL: " + url);
}
public static boolean isValidUrl(String url){
.... //验证URL是否有效
}
public static void main(String[] args) {
getRemoteData(args[0]);
}
}
Nach dem Login kopieren

Wenn getRemoteData in der Hauptmethode aufgerufen wird, dort Es gibt zwei Methoden, eine ist Try-Catch und die andere besteht darin, throws InvalidUrlException direkt zu main hinzuzufügen.

2. Ungeprüfte Ausnahme

Wenn Sie „InvalidUrlException“ in „extends RuntimeException“ ändern

public class InvalidUrlException extends Exception {
public InvalidUrlException(String s){
super(s);
}
}
Nach dem Login kopieren
Nach dem Login kopieren

, muss main keine Würfe oder Try-Catch hinzufügen.

Geprüfte oder ungeprüfte Ausnahme auswählen?

Einige Java-Bücher empfehlen die Verwendung geprüfter Ausnahmehandler für alle wiederherstellbaren Ausnahmen und ungeprüfter Ausnahmen für nicht behebbare Fehler. Tatsächlich können die meisten von RuntimeException geerbten Java-Ausnahmen jedoch auch im Programm wiederhergestellt werden. Beispielsweise können NullPointerException, IllegalArgumentExceptions, Divide-by-0-Ausnahmen usw. erfasst und verarbeitet werden, damit das Programm weiter ausgeführt werden kann. Nur einige besondere Umstände stören die Ausführung des Programms, z. B. das Lesen der Konfigurationsdatei beim Start. Wenn die Konfigurationsdatei nicht vorhanden ist oder ein schwerwiegender Fehler vorliegt, muss das Programm beendet werden.

Im Folgenden sind einige Argumente für und gegen geprüfte Ausnahmen aufgeführt:

Der Compiler zwingt dazu, ungeprüfte Ausnahmen abzufangen oder auszulösen, damit Entwickler immer daran denken, Ausnahmen zu behandeln.

Methoden, die geprüfte Ausnahmen auslösen, müssen Throws als Teil der Methode oder Schnittstelle deklarieren, was beim Hinzufügen oder Ändern von Methodenausnahmen zu Unannehmlichkeiten führt.

Ungeprüfte Ausnahmen müssen nicht explizit behandelt werden, erschweren jedoch die Ausnahmebehandlung.

Wenn Sie eine geprüfte Ausnahmemethode aufrufen, müssen Sie die Ausnahme dieser Methode behandeln, was den oberen Aufrufercode verwirrend macht.

Es liegt an Ihnen zu entscheiden, ob Sie aktiviert oder deaktiviert wählen. Es ist schwierig zu sagen, welches definitiv richtig ist und umgekehrt. Unter den derzeit populäreren Sprachen scheint Java die einzige zu sein, die geprüfte Ausnahmen unterstützt, während andere Sprachen nur ungeprüfte Ausnahmen haben.

Das Obige ist der Inhalt der geprüften und ungeprüften Ausnahmen von Java. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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ß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)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Feb 07, 2025 pm 12:11 PM

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo

See all articles