Heim  >  Artikel  >  Java  >  Erläuterung der Probleme mit Java-Klassifizierungsausnahmen

Erläuterung der Probleme mit Java-Klassifizierungsausnahmen

巴扎黑
巴扎黑Original
2017-07-18 17:50:501246Durchsuche

Fehler: Fehler, erfordert normalerweise keine Programmiererverwaltung, bezieht sich im Allgemeinen auf unzureichenden Speicher usw.
Ausnahme: Ausnahme

Je nach Ausführungszeitpunkt ist sie unterteilt in:
Laufzeitausnahme: RuntimeException: Ausnahme, die nur beim Ausführen auftritt.
Nicht-Laufzeit-Ausnahmen:

Unterteilt danach, ob es sicher ist oder nicht:
Überprüfte Ausnahmen: Dateiöffnungsausnahmen, Dateioperationsausnahmen, Datenbankoperationsausnahmen usw.
Ungeprüfte Ausnahmen: Programmierer achten nicht darauf, zu überprüfen, ob zu den resultierenden Ausnahmen Ausnahmen für Index außerhalb der Grenzen, Nullzeiger-Ausnahmen und Typkonvertierungsausnahmen gehören.


Verarbeitungsmethoden:
Zwei Methoden: Schlüsselwortverarbeitung wie try
werfen und Schlüsselwortverarbeitung werfen

Prinzip: Die untere Schicht sollte Ausnahmen auslösen, die Oberflächenschicht ist in Geschäftssprache umgewandelt, um Benutzer daran zu erinnern.


Die Ausnahmebehandlung im Projekt sollte benutzerspezifisch sein.
Geschäftsausnahme: Anomalie, die im Unternehmen auftritt.

Benutzerdefinierte Ausnahme: Kapselt Geschäftsausnahmen sowie den Ort und die Ursache der Ausnahme.

Java-Ausnahme:

1. Laufzeitausnahme
4. Benutzerdefinierte Ausnahme auslösen

ist in zwei Typen unterteilt: Die Error-Klasse stellt Kompilierungs- und Systemfehler dar und erlaubt keine Erfassung; die Exception-Klasse stellt Ausnahmen dar, die durch Standardmethoden der Java-Bibliothek ausgelöst werden. Die Exception-Klasse enthält außerdem zwei direkte Unterklassen: Runtime_Exception und Non_RuntimeException.

Die laufende Ausnahmeklasse entspricht Kompilierungsfehlern, die sich auf verschiedene Ausnahmen beziehen, die vom Interpreter generiert werden, wenn ein Java-Programm ausgeführt wird. Laufende Ausnahmen können überall auftreten und treten sehr häufig auf. Um einen enormen Overhead der Systemressourcen zu vermeiden, prüft der Compiler daher nicht auf Ausnahmen. Daher werden Laufzeitausnahmen in der Java-Sprache möglicherweise nicht unbedingt abgefangen. Operationsfehler deuten häufig auf Fehler im Code hin, z. B. arithmetische Ausnahmen (z. B. Division durch 0), Indexausnahmen (z. B. Array außerhalb der Grenzen) usw.

Nicht-Laufzeitausnahmen sind Instanzen der Non_RuntimeException-Klasse und ihrer Unterklassen, auch bekannt als erkennbare Ausnahmen. Der Java-Compiler verwendet die möglichen Ergebnisse in der Analysemethode oder Konstruktionsmethode, um zu erkennen, ob das Java-Programm einen Handler zum Erkennen von Ausnahmen enthält. Für jede mögliche erkennbare Ausnahme muss die throws-Klausel der Methode oder Konstruktionsmethode die entsprechende Ausnahmeklasse auflisten. Die in den Java-Standardpaketen java.lang, java.util und java.net definierten Ausnahmen sind nicht laufende Ausnahmen.

ArithmeticException-Klasse: ArithmeticExecption

Nullzeiger-Ausnahmeklasse: NullPointerException

Typumwandlungsausnahme: ClassCastException

Array negative Standardausnahme: NegativeArrayException

Array-Index außerhalb der Grenzen Ausnahme: ArrayIndexOutOfBoundsException

Verstoß gegen Sicherheitsprinzipien Ausnahme: SecurityException

Datei beendet Ausnahme: EOFException

Datei nicht gefunden Ausnahme: FileNotFoundException

Ausnahme bei der Konvertierung von Zeichenfolgen in Zahlen: NumberFormatException

Ausnahme bei Betriebsdatenbank: SQLException


Eingabe- und Ausgabeausnahme: IOException


Ausnahme „Methode nicht gefunden“: NoSuchMethodException


java.lang.AbstractMethodError

Fehler bei der abstrakten Methode. Wird ausgelöst, wenn die Anwendung versucht, eine abstrakte Methode aufzurufen.

java.lang.AssertionError

Assertionsfehler. Wird verwendet, um einen Behauptungsfehler anzuzeigen.

java.lang.ClassCircularityError

Klassenzirkelabhängigkeitsfehler. Beim Initialisieren einer Klasse wird diese Ausnahme ausgelöst, wenn eine zirkuläre Abhängigkeit zwischen Klassen erkannt wird.

java.lang.ClassFormatError

Klassenformatfehler. Wird ausgelöst, wenn die Java Virtual Machine versucht, eine Java-Klasse aus einer Datei zu lesen und erkennt, dass der Inhalt der Datei nicht einem gültigen Format für die Klasse entspricht.

java.lang.Error

Fehler. Ist die Basisklasse für alle Fehler und wird verwendet, um schwerwiegende Probleme beim Programmbetrieb zu identifizieren. Diese Probleme beschreiben normalerweise eine ungewöhnliche Situation, die von der Anwendung nicht erkannt werden sollte.

java.lang.ExceptionInInitializerError

Initialisatorfehler. Wird ausgelöst, wenn während der Ausführung des statischen Initialisierers einer Klasse eine Ausnahme auftritt. Der statische Initialisierer bezieht sich auf das statische Anweisungssegment, das direkt in der Klasse enthalten ist.

java.lang.IllegalAccessError

Unzulässiger Zugriffsfehler. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, auf ein Feld (Field) einer Klasse zuzugreifen oder es zu ändern oder ihre Methode aufzurufen, aber die Sichtbarkeitsdeklaration des Felds oder der Methode verletzt.

java.lang.InkompatibleClassChangeError

Inkompatibler Klassenänderungsfehler. Diese Ausnahme wird ausgelöst, wenn eine inkompatible Änderung in der Klassendefinition auftritt, von der die ausgeführte Methode abhängt. Im Allgemeinen wird dieser Fehler leicht verursacht, wenn die Deklarationsdefinition einiger Klassen in der Anwendung geändert wird, ohne die gesamte Anwendung neu zu kompilieren und sie dann direkt auszuführen.

java.lang.InstantiationError

Instantiierungsfehler. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, eine abstrakte Klasse oder Schnittstelle über den neuen Operator

java.lang.InternalError

Interner Fehler zu erstellen. Wird verwendet, um anzuzeigen, dass in der Java Virtual Machine ein interner Fehler aufgetreten ist.

java.lang.LinkageError

Linkfehler. Dieser Fehler und alle seine Unterklassen weisen darauf hin, dass eine Klasse von anderen Klassen abhängt. Nachdem die Klasse kompiliert wurde, ändert die abhängige Klasse ihre Klassendefinition, ohne alle Klassen neu zu kompilieren, wodurch der Fehlerzustand verursacht wird.

java.lang.NoClassDefFoundError

Fehler „Klassendefinition nicht gefunden“. Dieser Fehler wird ausgelöst, wenn die Java Virtual Machine oder der Klassenlader versucht, eine Klasse zu instanziieren, und die Definition der Klasse nicht finden kann.

java.lang.NoSuchFieldError

Fehler „Feld existiert nicht“. Dieser Fehler wird ausgelöst, wenn eine Anwendung versucht, auf ein Feld einer Klasse zuzugreifen oder es zu ändern, für die es keine Definition für dieses Feld gibt.

java.lang.NoSuchMethodError

In der Methode liegt kein Fehler vor. Dieser Fehler wird ausgelöst, wenn die Anwendung versucht, eine Methode einer Klasse aufzurufen, die keine Definition für die Methode hat.

java.lang.OutOfMemoryError

Fehler wegen nicht genügend Speicher. Dieser Fehler wird ausgelöst, wenn der verfügbare Speicher nicht ausreicht, damit die Java Virtual Machine ein Objekt zuweisen kann.

java.lang.StackOverflowError

Stapelüberlauffehler. Dieser Fehler wird ausgelöst, wenn eine Anwendung zu tiefe rekursive Aufrufe durchführt und einen Stapelüberlauf verursacht.

java.lang.ThreadDeath

Der Thread endet. Dieser Fehler wird ausgelöst, wenn die Stop-Methode der Thread-Klasse aufgerufen wird, um das Ende des Threads anzuzeigen.

java.lang.UnknownError

Unbekannter Fehler. Wird verwendet, um anzuzeigen, dass in der Java Virtual Machine ein unbekannter schwerwiegender Fehler aufgetreten ist.

java.lang.UnsatisfiedLinkError

Unsatisfied-Link-Fehler. Wird ausgelöst, wenn die Java Virtual Machine keine native Sprachdefinition einer Klasse findet, die eine native Methode deklariert.

java.lang.UnsupportedClassVersionError

Fehler bei der nicht unterstützten Klassenversion. Dieser Fehler wird ausgegeben, wenn die Java Virtual Machine versucht, eine bestimmte Klassendatei zu lesen, dabei jedoch feststellt, dass die Haupt- und Nebenversionsnummern der Datei von der aktuellen Java Virtual Machine nicht unterstützt werden.

java.lang.VerifyError

Überprüfungsfehler. Dieser Fehler wird ausgegeben, wenn der Validator eine interne Inkompatibilität oder ein Sicherheitsproblem in einer Klassendatei erkennt.

java.lang.VirtualMachineError

Fehler der virtuellen Maschine. Wird verwendet, um eine Situation anzuzeigen, in der eine virtuelle Maschine zerstört wurde oder nicht über ausreichende Ressourcen verfügt, um den Betrieb fortzusetzen.


java.lang.ArithmeticException

Arithmetische Bedingungsausnahme. Zum Beispiel: Ganzzahldivision durch Null usw.

java.lang.ArrayIndexOutOfBoundsException

Array-Index-Ausnahme außerhalb der Grenzen. Wird ausgelöst, wenn der Index im Array negativ oder größer oder gleich der Arraygröße ist.

java.lang.ArrayStoreException

Array-Speicherausnahme. Wird ausgelöst, wenn ein Objekt eines nicht als Array deklarierten Typs in einem Array gespeichert wird.

java.lang.ClassCastException

Klassenumwandlungsausnahme. Angenommen, es gibt die Klassen A und B (A ist nicht die übergeordnete Klasse oder Unterklasse von B) und O ist eine Instanz von A. Dann wird diese Ausnahme ausgelöst, wenn O gezwungen wird, als Instanz von Klasse B konstruiert zu werden. Diese Ausnahme wird oft als Cast-Ausnahme bezeichnet.

java.lang.ClassNotFoundException

Ausnahme „Klasse nicht gefunden“. Diese Ausnahme wird ausgelöst, wenn die Anwendung versucht, eine Klasse basierend auf einem Klassennamen in Zeichenfolgenform zu erstellen, aber nach dem Durchlaufen von CLASSPAH die Klassendatei mit dem entsprechenden Namen nicht finden kann.

java.lang.CloneNotSupportedException

Klonausnahme wird nicht unterstützt. Wenn die Cloneable-Schnittstelle nicht implementiert ist oder die Methode clone nicht unterstützt wird, wird beim Aufruf der Methode clone() diese Ausnahme ausgelöst.

java.lang.EnumConstantNotPresentException

Es gibt keine Ausnahme in der Enumerationskonstante. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, über den Namen und den Aufzählungstyp auf ein Aufzählungsobjekt zuzugreifen, das Aufzählungsobjekt jedoch keine Konstante enthält.

java.lang.Exception

Root-Ausnahme. Wird verwendet, um die Situation zu beschreiben, die die Anwendung erfassen möchte.

java.lang.IllegalAccessException

Unzulässige Zugriffsausnahme. Diese Ausnahme wird ausgelöst, wenn die Anwendung versucht, eine Instanz einer Klasse zu erstellen, auf die Klasseneigenschaften zuzugreifen oder die Klassenmethoden durch Reflektion aufzurufen, und auf die Definition der Klasse, des Attributs, der Methode oder des Konstruktors zu diesem Zeitpunkt nicht zugegriffen werden kann.

java.lang.IllegalMonitorStateException

Unzulässige Überwachungsstatusausnahme. Diese Ausnahme wird ausgelöst, wenn ein Thread versucht, auf den Monitor eines Objekts (O) zu warten, das ihm nicht gehört, oder andere Threads benachrichtigt, auf den Monitor des Objekts (O) zu warten.

java.lang.IllegalStateException

Unzulässige Statusausnahme. Diese Ausnahme wird ausgelöst, wenn eine Methode in der Java-Umgebung und -Anwendung aufgerufen wird, bevor sie sich in einem zulässigen Aufrufzustand befindet.

java.lang.IllegalThreadStateException

Unzulässige Thread-Statusausnahme. Wenn sich der Landkreis nicht im legalen Aufrufstatus einer bestimmten Methode befindet und die Methode aufgerufen wird, wird eine Ausnahme ausgelöst.

java.lang.IndexOutOfBoundsException

Index-Out-of-Bounds-Ausnahme. Diese Ausnahme wird ausgelöst, wenn der Indexwert einer Sequenz kleiner als 0 oder größer oder gleich der Sequenzgröße ist.

java.lang.InstantiationException

Instantiierungsausnahme. Diese Ausnahme wird ausgelöst, wenn versucht wird, eine Instanz einer Klasse über die Methode newInstance() zu erstellen, und die Klasse eine abstrakte Klasse oder Schnittstelle ist.

java.lang.InterruptedException

Unterbrochene Ausnahme. Diese Ausnahme wird ausgelöst, wenn ein Thread längere Zeit wartet, schläft oder anderweitig angehalten wird und andere Threads den Thread über die Interrupt-Methode von Thread beenden.

java.lang.NegativeArraySizeException

Die Arraygröße ist negativ. Diese Ausnahme wird ausgelöst, wenn ein Array mit einem negativen Größenwert erstellt wird.

java.lang.NoSuchFieldException

Es gibt keine Ausnahme im Attribut. Diese Ausnahme wird beim Zugriff auf eine nicht vorhandene Eigenschaft einer Klasse ausgelöst.

java.lang.NoSuchMethodException

Es gibt keine Ausnahme in der Methode. Diese Ausnahme wird beim Zugriff auf eine nicht vorhandene Methode einer Klasse ausgelöst.

java.lang.NullPointerException

Nullzeiger-Ausnahme. Diese Ausnahme wird ausgelöst, wenn die Anwendung versucht, null zu verwenden, wenn ein Objekt erforderlich ist. Zum Beispiel: Aufrufen der Instanzmethode des Nullobjekts, Zugriff auf die Eigenschaften des Nullobjekts, Berechnen der Länge des Nullobjekts, Verwenden der Throw-Anweisung zum Auslösen von Null usw.

java.lang.NumberFormatException

Ausnahme beim Zahlenformat. Diese Ausnahme wird ausgelöst, wenn versucht wird, einen String in einen angegebenen numerischen Typ zu konvertieren, und der String nicht dem für den numerischen Typ erforderlichen Format entspricht.

java.lang.RuntimeException

Laufzeitausnahme. Ist die übergeordnete Klasse für alle Ausnahmen, die während des normalen Betriebs der Java Virtual Machine ausgelöst werden können.

java.lang.SecurityException

Sicherheitsausnahme. Vom Sicherheitsmanager ausgelöste Ausnahme, die auf eine Sicherheitsverletzung hinweist.

java.lang.StringIndexOutOfBoundsException

String-Index-Ausnahme außerhalb der Grenzen. Diese Ausnahme wird ausgelöst, wenn auf ein Zeichen in einer Zeichenfolge mit einem Indexwert zugegriffen wird, der kleiner als 0 oder größer oder gleich der Sequenzgröße ist.

java.lang.TypeNotPresentException

Es gibt keine Typausnahme. Diese Ausnahme wird ausgelöst, wenn eine Anwendung versucht, auf einen Typ als Zeichenfolgendarstellung des Typnamens zuzugreifen, der Typ jedoch anhand des angegebenen Namens nicht gefunden werden kann. Der Unterschied zwischen dieser Ausnahme und ClassNotFoundException besteht darin, dass diese Ausnahme eine ungeprüfte (ungeprüfte) Ausnahme ist, während ClassNotFoundException eine geprüfte (geprüfte) Ausnahme ist.

java.lang.UnsupportedOperationException

Nicht unterstützte Methodenausnahme. Ausnahme, die angibt, dass die angeforderte Methode nicht unterstützt wird.

Ausnahme
javax.servlet.jsp.JspException: Zuordnung für Aktion /Login kann nicht abgerufen werden (/Login ist Ihr Aktionsname)

Mögliche Gründe
Aktion ist nicht mehr definiert in config.xml, oder es wird keine passende Aktion gefunden, verwenden Sie beispielsweise


Das obige ist der detaillierte Inhalt vonErläuterung der Probleme mit Java-Klassifizierungsausnahmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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