Heim >Java >javaLernprogramm >Java-Ausnahmesammlung

Java-Ausnahmesammlung

伊谢尔伦
伊谢尔伦Original
2016-11-25 10:56:581147Durchsuche

Schlüsselwörter: Java

Arithmetische Ausnahmeklasse: ArithmeticExecption

Nullzeiger-Ausnahmeklasse: NullPointerException

Typumwandlungsausnahme: ClassCastException

Array-negative Subscript-Ausnahme : NegativeArrayException

Array-Index außerhalb der Grenzen Ausnahme: ArrayIndexOutOfBoundsException

Sicherheitsverletzungsausnahme: SecurityException

Datei beendet Ausnahme: EOFException

Datei nicht gefunden Ausnahme gefunden: FileNotFoundException

String-to-Number-Ausnahme: NumberFormatException

Operationsdatenbank-Ausnahme: SQLException

Eingabe- und Ausgabeausnahme: IOException

Methode nicht gefunden, Ausnahme:NoSuchMethodException

1. java.lang.nullpointerException

Diese Ausnahme muss schon oft aufgetreten sein. Die Erklärung für die Ausnahme lautet: „Das Programm hat einen Nullzeiger festgestellt.“ Initialisierte Objekte oder nicht vorhandene Objekte treten häufig bei Vorgängen wie dem Erstellen von Bildern und dem Aufrufen von Arrays auf. Beispielsweise ist das Bild nicht initialisiert oder der Pfad beim Erstellen des Bildes ist falsch. Das Auftreten von Nullzeigern bei Array-Operationen ist in vielen Fällen ein häufiger Fehler von Freunden, die gerade erst anfangen, Programmieren zu lernen, das heißt, sie verwechseln die Initialisierung des Arrays mit der Initialisierung der Array-Elemente. Bei der Initialisierung des Arrays wird dem Array der erforderliche Speicherplatz zugewiesen. Die Elemente im initialisierten Array wurden nicht instanziiert und sind noch leer. Daher muss jedes Element initialisiert werden (wenn es aufgerufen werden soll)

 2. java.lang.classnotfoundException

Diese Ausnahme ist ein häufiges Problem, das auftritt, wenn viele Programmierer, die ursprünglich in Entwicklungsumgebungen wie jb entwickelt haben, Pakete unter jb unter wtk kompilieren. Die Erklärung der Ausnahme ist „Die angegebene Klasse existiert nicht.“ Hier prüfen wir hauptsächlich, ob der Name und der Pfad der Klasse korrekt sind. Wenn das Paket unter jb erstellt wird, wird das Paket normalerweise standardmäßig hinzugefügt, daher sollten Sie nach dem Wechsel zu wtk Add darauf achten der Pfad zum Paket.

 3. java.lang.arithmeticException

Die Erklärung dieser Ausnahme lautet „Ausnahme bei mathematischen Operationen“. Wenn beispielsweise eine Operation wie Division durch Null im Programm auftritt, ist dies eine Ausnahme Wenn eine Anomalie auftritt, sollte jeder die in seinem Programm enthaltenen mathematischen Operationen sorgfältig überprüfen, um festzustellen, ob etwas mit der Formel nicht stimmt.

 4. java.lang.arrayindexoutofboundsexception

Ich glaube, viele Freunde sind oft auf diese Ausnahme gestoßen. Die Erklärung für die Ausnahme ist „Array-Index außerhalb der Grenzen“. Wenn Sie also ein Array aufrufen, müssen Sie sorgfältig prüfen, ob der von Ihnen aufgerufene Index den Bereich des Arrays überschreitet. Im Allgemeinen ist ein Anzeigeaufruf (d. h. die direkte Verwendung einer Konstante als Index) nicht anfällig Solche Fehler, aber implizite Aufrufe (d. h. die Verwendung von Variablen zur Darstellung von Indizes) gehen häufig schief. Eine andere Situation besteht darin, dass die Länge des im Programm definierten Arrays durch bestimmte Methoden bestimmt und nicht im Voraus deklariert wird. Überprüfen Sie am besten zuerst die Länge des Arrays, um diese Ausnahme zu vermeiden.

 5. java.lang.illegalargumentException

Die Erklärung dieser Ausnahme ist „Methodenparameterfehler“. Viele Methoden in j2me-Klassenbibliotheken verursachen in einigen Fällen solche Fehler, wie z. B. Diese Ausnahme wird treten auf, wenn der Lautstärkeparameter in der Lautstärkeanpassungsmethode als negative Zahl geschrieben wird. Ein weiteres Beispiel sind die drei Werte in der Methode g.setcolor(int red, int green, int blue). Es sind mehr als 255. Sobald wir diese Ausnahme gefunden haben, müssen wir schnell prüfen, ob bei der Parameterübergabe im Methodenaufruf ein Fehler vorliegt.

 6.java.lang.illegalaccessException

Die Erklärung dieser Ausnahme lautet „Keine Zugriffsberechtigung“, wenn die Anwendung eine Klasse aufrufen möchte, die aktuelle Methode jedoch keine Zugriffsberechtigung dazu hat Die Klasse Diese Ausnahme wird auftreten. Bitte beachten Sie diese Ausnahme bei der Verwendung von Paketen im Programm.

Es gibt viele weitere Ausnahmen, daher werde ich sie nicht einzeln auflisten. Ich möchte jedoch erklären, dass ein qualifizierter Programmierer ansonsten ein umfassendes Verständnis für häufige Probleme im Programm und entsprechende Lösungen haben muss Wenn Sie einfach damit aufhören, Programme zu schreiben, ohne sie zu ändern, wird dies große Auswirkungen auf Ihre eigene Entwicklung haben. Alle Ausnahmebeschreibungen finden Sie in der API.

java.lang.AbstractMethodError

Fehler in 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.

Grund:

 1. Die externen Ressourcen, auf die das System zugreift, sind nicht geschlossen, was zu einer großen Verschwendung externer Ressourcen führt, was schließlich dazu führen kann, dass das System nicht mehr normal funktioniert.

 2. Die externen Ressourcen Wenn das System zu oft geschlossen wird, kann das externe System nicht normal damit umgehen.

 3. Es treten Anomalien bei den externen Ressourcen auf, auf die das System zugreift.

Lösung:

1. Bevor Sie auf externe Ressourcen zugreifen, prüfen Sie zunächst, ob die Ressource (z. B. eine Datenbank) angeschlossen oder normal betrieben werden kann.

2. Wenn beim Zugriff auf externe Ressourcen eine Verbindung hergestellt wird, muss der Herunterfahrvorgang durchgeführt werden und darf nur einmal durchgeführt werden.

 3. Versuchen Sie, externe Ressourcen im selben Vorgang gemeinsam zu nutzen, um den Ressourcenverbrauch des Vorgangs zu reduzieren und die Ausführungseffizienz des Programms zu verbessern

 java.lang.ExceptionInInitializerError

 Fehler beim Initialisierungsprogramm. 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 von Java zu erstellen.

 java.lang.InternalError

Interner Fehler. 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, was den Fehlerzustand verursacht.

 java.lang.NoClassDefFoundError

 Klassendefinition nicht gefunden Fehler. 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

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

java.lang.NoSuchMethodError

Es liegt kein Fehler in der Methode 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 unzureichendem 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

Nicht unterstützter Klassenversionsfehler. 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

Verifizierungsfehler. 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

 Klassenausnahme 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 für Aufzählungskonstanten. 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

Instanziierungsausnahme. 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

 Abgebrochene 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 in der Eigenschaft. 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.StringIndexOutOfBoundsException

String-Out-of-Bounds-Fehler und andere String-Klassen-bezogene Fehler

Codesegment 4:

String s_all_power = " 1010011";

String s_access_power = s_all_power.substring(3,4);

Beschreibung:

Die Funktion des obigen Codeausschnitts besteht darin, das 4. Zeichen im zu erhalten Zeichenfolge s_all_power.

Erklärung:

Unter normalen Umständen gibt es kein Problem mit dem Programm. Wenn die Länge von s_all_power aus irgendeinem Grund kürzer wird, gibt das Programm einen Zeichenfolgenfehler aus.

Lösung: Wenn Sie einen String (substring, charAt) abfangen, ihn in ein Byte-Array konvertieren (getBytes) und einen Zeichen-Array in einen String (valueOf) konvertieren, überprüfen Sie zunächst die Existenz des String-Objekts (Whether es ist leer) und die Länge werden vor dem Fortfahren überprüft.

Umgeschrieben:

String s_all_power = "1010011";

if (s_all_power.length>4)

String s_access_power = s_all_power.substring(3 , 4);

java.lang.TypeNotPresentException

Es gibt keine Ausnahme im Typ. 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 Ausnahme ist, während ClassNotFoundException eine 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

 Die Aktion ist in struts-config.xml nicht definiert oder es wurde keine passende Aktion gefunden, z. B. die Verwendung von

in einer JSP-Datei --------------- -------------------------------------------------- -------------------------------------------------- --

 Ausnahme

 org.apache.jasper.JasperException: Definition für Formular-Bean null kann nicht abgerufen werden

 Mögliche Gründe

 Diese Ausnahme liegt daran, dass Struts entsprechend zu struts-config.xml Das Mapping hat das von der Aktion erwartete Formular-Bean nicht gefunden. In den meisten Fällen kann dies durch eine Diskrepanz zwischen dem in der Form-Bean festgelegten Namensattribut und dem in der Aktion festgelegten Namensattribut verursacht werden. Mit anderen Worten: Sowohl Aktion als auch Formular sollten jeweils ein Namensattribut haben, das genau übereinstimmt, einschließlich der Groß-/Kleinschreibung. Dieser Fehler tritt auch auf, wenn der Aktion kein Namensattribut zugeordnet ist. Wenn das Namensattribut in der Aktion nicht angegeben ist, ist der Aktion kein Namensattribut zugeordnet. Wenn eine Aktion bestimmte Steuerelemente erstellt, z. B. das Springen zur entsprechenden JSP-Seite basierend auf Parameterwerten, anstatt Formulardaten zu verarbeiten, wird das Namensattribut natürlich auch nicht verwendet. Dies ist auch eine der Möglichkeiten, Aktionen zu verwenden.

 ------------------------------------------- ---- ---------------------------------------------- ---- -------------------

 Ausnahme

 Es konnte keine Aktionsinstanz für Pfad /xxxx erstellt werden

 Mögliche Gründe

Besonderer Tipp: Da dieser Fehler in vielen Situationen auftreten kann, wird empfohlen, die Protokoll-/Debugstufe Ihres Webservers zu erhöhen, damit Sie potenzielle Fehler anhand weiterer Informationen erkennen können Beim Versuch, eine Aktionsklasse zu erstellen, für die Sie die Zuordnung in struts-config.xml festgelegt haben (d. h. das Tag hinzugefügt haben), ist ein Fehler aufgetreten.

Es gibt viele Gründe, warum die über das Klassenattribut des Aktions-Tags in struts-config.xml angegebene Aktionsklasse nicht gefunden werden kann, zum Beispiel: Fehler beim Auffinden der kompilierten Klassendatei. Fehler beim Platzieren der kompilierten .class-Datei für die Aktion im Klassenpfad (Bei der Webentwicklung befindet sich der Speicherort der Klasse in WEB-INF/classes, daher muss sich Ihre Aktionsklasse in diesem Verzeichnis befinden. Beispielsweise befindet sich Ihre Aktionsklasse in WEB -INF/classes/action/Login.class, dann ist es beim Festlegen des Attributtyps der Aktion in struts -config.xml action.Login).

Rechtschreibfehler, das passiert auch von Zeit zu Zeit, und ist nicht leicht zu finden. Achten Sie besonders auf die Groß-/Kleinschreibung des Anfangsbuchstabens und des Namens des Pakets.

 ------------------------------------------- ---- ---------------------------------------------- ---- -------------------

 Exception

 javax.servlet.jsp.JspException: Keine Getter-Methode für die Eigenschaft Benutzername von bean org. apache.struts.taglib.html.BEAN

Mögliche Gründe

Es ist keine Getter-Methode für eine Variable im Formular-Bean definiert

Dieser Fehler tritt hauptsächlich auf Die vom Formular übermittelte FormBean muss, wenn sie mit Struts markiert ist, eine getUsername()-Methode in der FormBean enthalten. Beachten Sie den Buchstaben „U“.

 ------------------------------------------- ---- ---------------------------------------------- ---- -------------------

 Ausnahme

 java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

Mögliche Gründe

Dieser Fehler tritt hauptsächlich auf, wenn die entsprechende Java-.class-Datei nicht im Klassenpfad gefunden werden kann. Wenn dieser Fehler auftritt, während die Webanwendung ausgeführt wird, liegt dies hauptsächlich daran, dass sich die angegebene Klassendatei nicht im Klassenpfad des Webservers befindet (/WEB-INF/classes und /WEB-INF/lib). Der Grund für den obigen Fehler ist, dass die ActionForm-Klasse nicht gefunden werden kann.

 ------------------------------------------- ---- ---------------------------------------------- ---- -------------------

 Ausnahme

 javax.servlet.jsp.JspException: Ausnahme beim Erstellen der Bean der Klasse org. apache.struts .action.ActionForm: {1}

Mögliche Gründe

Instanziieren Sie die von Struts bereitgestellte ActionForm-Klasse direkt, anstatt eine von ActionForm abgeleitete Klasse zu instanziieren. Dies kann implizit auftreten, wenn Sie ein Formular angeben -bean ist diese Struts-ActionForm-Klasse, anstatt ein untergeordnetes Element dieser Klasse für die Form-Bean anzugeben.

 Das Fehlen einer von ActionForm abgeleiteten Klasse mit einer Aktion zu verknüpfen, kann ebenfalls zu diesem Fehler führen.

---- ---------------------------------------------- ---- ---------------------------------------------- ---- ---------

 Ausnahme

javax.servlet.jsp.JspException: ActionMappings- oder ActionFormBeans-Sammlung kann nicht gefunden werden

Mögliche Gründe

Entweder das Tag, das das Struts-ActionServlet identifiziert, oder das Tag, das die Erweiterung .do zuordnet, oder beide sind nicht in web.xml deklariert.

Tipp- oder Rechtschreibfehler in struts-config.xml können ebenfalls dazu führen, dass diese Ausnahme auftritt. Beispielsweise fehlt das Schlusssymbol /> eines Tags. Überprüfen Sie dies am besten mit dem Struts-Konsolentool.

Darüber hinaus muss im Web „Load-on-Startup“ deklariert werden.

Eine weitere Sache im Zusammenhang mit der Verwendung von Load-on-Startup ist, dass die Verwendung von Struts zum Vorkompilieren von JSP-Dateien ebenfalls diese Ausnahme verursachen kann.

 ------------------- - ------------------------------------------------- - -----------------

 Exception

 java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils. java :1223)

Mögliche Gründe

Dem Forward-Element in struts-config.xml fehlt das Pfadattribut. Es sollte beispielsweise folgende Form haben:


------------------------ -------- ------------------------------------------ -----------------------------------------

 Ausnahme

javax.servlet .jsp.JspException: Bean org.apache.struts.taglib.html.BEAN kann in keinem Bereich gefunden werden

Wahrscheinliche Ursachen

Versuch, untergeordnete Formularelemente zu verwenden außerhalb des Struts-Formular-Tags. Dies passiert häufig, wenn Sie Struts-HTML-Markup im Hintergrund verwenden. Beachten Sie auch, dass Sie versehentlich Bodyless-Tags verwenden können. Der Webserver wird es beispielsweise beim Parsen als Bodyless-Tag behandeln. Wenn Sie es erneut verwenden, wird es so behandelt Ein Problem besteht darin, dass bei der Einführung der HTML-Tag-Bibliothek mit taglib der von Ihnen verwendete Präfixwert nicht html ist.

 ------------------------------------------- ---- ---------------------------------------------- ---- -------------------

 Ausnahme

 javax.servlet.jsp.JspException: Fehlende Nachricht für Schlüssel xx.xx .xx

Wahrscheinliche Ursachen

Dieses Schlüssel-Wert-Paar ist nicht in der Ressourcendatei ApplicationResources.properties definiert. Wenn Sie bei der Verwendung von Eclipse häufig auf diese Situation stoßen, löscht Eclipse automatisch die Ressourcendateien im Klassenverzeichnis, wenn das Projekt neu kompiliert wird.

Wenn sich die Ressourcendatei ApplicationResources.properties nicht im Klassenpfad befindet, sollte die Ressourcendatei im Verzeichnis WEB-INF/classes abgelegt werden und natürlich muss sie in struts-config.xml definiert werden)

 ----- ----------------------------------------- --------- -------------------------- --------- --------

 Ausnahme

 Nachrichtenressourcen können unter dem Schlüssel org.apache.struts.action.MESSAGE nicht gefunden werden

 Mögliche Gründe

Offensichtlich tritt dieser Fehler bei der Verwendung von Ressourcendateien auf und Struts findet die Ressourcendateien nicht.

Impliziter Versuch, Nachrichtenressourcen zu verwenden, die nicht verfügbar sind (z. B. die Verwendung eines leeren html:options-Tags anstelle der Angabe der Optionen im Textkörper – dies setzt voraus, dass Optionen in der Datei ApplicationResources.properties angegeben sind)

XML-Parser-Probleme – zu viele, zu wenige, falsche/inkompatible Versionen

---------------------------- -------------------------------------------------- ----------------------------------

 Abnormal

Seltsam und scheinbar Zufällige Zeichen in HTML und auf dem Bildschirm, jedoch nicht im Original-JSP oder Servlet.

Der verwendete Codierungsstil wird auf dieser Seite nicht unterstützt.

 ------------------------------------------- ---- ---------------------------------------------- ---- -------------------

 Ausnahme

 „Dokument enthielt keine Daten“ in Netscape

 Nr Daten-gerenderte (völlig leere) Seite im Microsoft Internet Explorer

Mögliche Gründe

Verwendung einer abgeleiteten Aktionsklasse ohne Implementierung der Methode perform() oderexecute(). Was in Struts1.0 implementiert ist, ist die perform()-Methode, und was in Struts1.1 implementiert ist, ist dieexecute()-Methode, aber Struts1.1 ist abwärtskompatibel mit der perform()-Methode. Wenn Sie jedoch Struts1.1 verwenden, um eine abgeleitete Aktionsklasse zu erstellen und die Methode „execute()“ zu implementieren, und diese in Struts1.0 ausführen, erhalten Sie in Netscape die Fehlermeldung „Dokument enthielt Nodata“ oder eine vollständig leere (kein HTML). was auch immer) Seite im Microsoft Internet Explorer gerendert. - ------------------------------------------------- - ---------------------------------

Ausnahme

ServletException: BeanUtils.populate

Lösung

Beim Hochladen von Dateien mit Struts wurde die Ausnahme javax.servlet.ServletException: BeanUtils.populate >My festgestellt ActionServlet verwendet keine Tool-Klassen wie BeanUtils. Später habe ich den Code sorgfältig überprüft und festgestellt, dass ich vergessen habe, enctype= „multipart/form-data“ in das Formular in der JSP-Datei einzufügen, sodass ich beim Schreiben des Programms darauf stoßen sollte Berücksichtigen Sie die Möglichkeit des Problems und denken Sie an etwas anderes als die Systemaufforderungsinformationen.

 ----------------------- --.--------------- --- -------------------------------- ---

 1. Wenn nach dem Definieren der Aktion ein Name angegeben wird, müssen Sie ein FormBean mit demselben Namen definieren, um die Formularzuordnung durchzuführen. 2. Wenn nach dem Definieren der Aktion „Kein Eingabeattribut für den Zuordnungspfad …“ angezeigt wird, wird beim Absenden angezeigt page...“-Fehler, müssen Sie die umgeleitete Seite in ihrem Eingabeattribut definieren. 3. Wenn beim Einfügen neuer Daten der Fehler „Zeilenanzahl bei Stapelaktualisierung falsch:...“ auftritt, bedeutet dies, dass der in XXX angegebene Schlüsseltyp vorliegt .hbm.xml Es handelt sich um einen primitiven Typ (int, long), da dieser Typ automatisch einen Wert zuweist und dieser Wert das System häufig glauben lässt, dass der Datensatz bereits vorhanden ist. Die richtige Methode ist die Verwendung von java.lang.Integer oder java.lang.Long object.4 Wenn beim Einfügen von Daten der Fehler „Argumenttyp nicht übereinstimmend“ auftritt, verwenden Sie möglicherweise spezielle Objekte wie „Datum“, da Struts nicht automatisch von „String“ in „Datum“ konvertieren können Konvertieren Sie String in Date in Action. .5. In Hibernate ist die Methode iterator() viel schneller als die Methode list(). Wenn ein Fehler „gleiches Symbol erwartet“ auftritt, bedeutet dies, dass Ihr strtus-Tag ein anderes Tag oder eine andere Variable enthält , zum Beispiel:


 Oder

 />

  In diesem Fall...

 --- ------- ------------------------------------------- ------- ------------------------------------------- ------- ------------

 Fehler: Ausnahme im Thread „main“ org.hibernate.Exception.SQLGrammarException: JDBC-Batch-Update konnte nicht ausgeführt werden. Ursache und Lösung : Weil Hibernate Tools (oder Eclipse Das von Ihrem eigenen Datenbank-Explorer generierte *.hbn.xml-Tool) Attribute wie „katalog="***" (* stellt den Datenbanknamen dar) enthält. Löschen Sie einfach dieses Attribut

----- --------------------------------------------- ----- --------------------------------------------- ----- -------------------

Fehler: org.hibernate.ObjectDeletedException: Gelöschtes Objekt würde durch Kaskade erneut gespeichert (gelöschtes Objekt entfernen). aus Assoziationen)

Ursachen und Lösungen:

Methode 1 Löschen Sie die Kaskade auf der Set-Seite

Methode 2 Löschen Sie nach dem Auflösen der Assoziation

Methode 3 in Viele-zu-Eins-Kaskade hinzufügen, aber der Wert darf nicht none sein

Der letzte Ausweg:

Überprüfen Sie, ob hashCode equal die ID als einzige markierte Option verwendet. Es gibt kein Problem, wenn ich uuid verwende .hex; Aber wenn ich native verwende, funktioniert es nicht. Löschen!

 ------------------------------------------------------- -- ------------------------------------------------ -- --------------------------------

Frage: Ich habe heute Tomcat 5.5.12 verwendet und es herausgefunden Das ist ein sehr nützliches System, das nicht mehr verwendet werden kann. Bei wiederholten Tests wurde festgestellt, dass taglib nicht in die Seite eingebunden werden kann. Andernfalls wird die folgende Eingabeaufforderung angezeigt: HTTP Status 500 -type Exception reportMeldungsbeschreibung Der Server ist auf einen internen Fehler () gestoßen, der die Ausführung verhindert hat this request.Exceptionorg. apache.jasper.JasperException: /index.jsp(1,1) TLD „META-INF/tlds/struts-bean.tld“ kann nicht aus der JAR-Datei „file:*****/WEB“ gelesen werden -INF/lib/struts.jar“: Grund: Das JAR im lib-Ordner für das Projekt wurde aktualisiert und servlet.jar und jsp-api.jar wurden beim Veröffentlichen ebenfalls freigegeben. Lösung: Löschen Sie jsp-api.jar, um dieses Problem zu lösen. ----------------------- ------------- - ------------------------------------------------- - --------------------------

Fehler: java.lang.NullPointerException

Grund: Dao-Instanz gefunden, Dinge, die injiziert werden müssen, wie z. B. die Verwaltungsinstanz, werden nicht injiziert (allgemein als Nullzeiger-Ausnahme bekannt). Lösung: Zu diesem Zeitpunkt sollten Sie die Protokolldatei überprüfen. Der Standardwert ist die Protokolldatei des Anwendungsservers. Beispiel: Tomcat ist [Tomcat-Installationsverzeichnis]/logs; Sie werden folgende Eingabeaufforderungen finden: Wahrscheinlich: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem in ServletContextresource definierten Namen „sf“ [/WEB-INF/applicationContext.xml ]: Initialisierung der Bean fehlgeschlagen; verschachtelte Ausnahme isorg.hibernate.HibernateException: konnte nicht über URL konfiguriert werden: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: konnte nicht über URL konfiguriert werden: file:src/hibernate.cfg.xml …………………….Verursacht durch: java. io.FileNotFoundException: srchibernate.cfg.xml kann sein: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem Namen „sessionFactory“, definiert in der ServletContext-Ressource [/WEB -INF/applicationContext.xml]: Initialisierung der Bean fehlgeschlagen; verschachtelte Ausnahme isorg.hibernate.MappingException: Ressource: com/mcc/coupon/model/UserRole.hbm.xml nicht gefunden Dann wissen Sie, dass ein Fehler vorliegt beim Parsen der Konfigurationsdatei, die auf der Webseite nicht sichtbar ist. Darüber hinaus liegt ein Fehler in der Persistenzzuordnungsdatei vor, der dazu führt, dass sie nicht analysiert wird und die von Ihnen benötigte Funktion nicht verwendet werden kann.

 ------------------------------------------- ---- ---------------------------------------------- ---- ----------------------------------

Fehler: StandardWrapperValve[action] : Servlet.service() für die Servlet-Aktion hat eine Ausnahme ausgelöst

javax.servlet.jsp.JspException: Zuordnung für Aktion /settlementTypeManage kann nicht abgerufen werden

Oder: Geben Sie eine Statusberichtsmeldung ein. Servlet-Aktion ist nicht verfügbar. Beschreibung. Die angeforderte Ressource (Servlet-Aktion ist nicht verfügbar) ist nicht verfügbar.

Grund: Wie oben

--------------------------------- -------------------------------------------------- -- ---------------------------------------------

Fehler StandardWrapperValve[jsp]: Servlet.service() für Servlet-JSP löste Ausnahmejava.lang.ClassNotFoundException aus: org.apache.struts.taglib.bean.CookieTei-Schnittstellenfehler, spezifische Beschreibung:

 org.apache. jasper.JasperException: TagExtraInfo-Klasse konnte nicht geladen oder instanziiert werden: org.apache.struts.taglib.bean.CookieTei

Ursache und Lösung:

 -------------------------------------------- --- -------------------------------- --- --------------------------------

java.lang.IllegalStateException: getOutputStream() wurde bereits für diese Antworten aufgerufen

Grund: Es gibt out.write("") im vom Webcontainer generierten Servlet-Code, der ist mit der Antwort namens 1. in JSP .getOutputStream() identisch. Das heißt, die Servlet-Spezifikation besagt, dass Sie nicht sowohl Response.getOutputStream() als auch Response.getWriter() aufrufen können IllegalStateException wird ausgelöst, wenn die zweite aufgerufen wird, da in jsp die Out-Variable tatsächlich über Response.getWriter abgerufen wird. Ihr Programm verwendet sowohl Response.getOutputStream als auch die Out-Variable, sodass der obige Fehler auftritt.

2. Da der JSP-Container nach der Verarbeitung der Anforderung die Methode „releasePageContet“ aufruft, um das verwendete PageContext-Objekt freizugeben, und auch die Methode „getWriter“ aufruft, da die Methode „getWriter“ mit der Methode „getOutputStream“ im Zusammenhang mit der Verwendung von Streams in Konflikt steht JSP-Seite, es wird diese Ausnahme verursachen

Lösung:

// Das Bild auf der Seite ausgeben

ImageIO.write(image, "JPEG", Response.getOutputStream( ));

2 Sätze hinzufügen;

out.clear();

// Bedeutung: zwischengespeicherten Inhalt löschen

out = pageContext.pushBody( ) ;

// Einen neuen BodyContent zurückgeben (der den BODY-Teil einer HTML-Seite darstellt)

// Das Objekt der JspWriter-Instanz speichern

// Das aktualisieren aus PageContext Der Inhalt des Attributs

 ------------------------------------ ---- ---------------------------------------------- ---- --------------------

 schlechte Nummer

Ursache: Projekt Die Version ist nicht mit der JDK-Version kompatibel

Lösung: Windows-Preferences-Server-Integrated Sandbox-Myeclise Tomcat 6 – Wählen Sie das JDK aus, das mit der Projektversion konsistent ist

-------- ------------------------------------------ -------- ------------------------------------------ -------- -

Ursache für das Zurücksetzen der Verbindung durch Peer: Socket-Schreibfehlerproblem

Dieses Problem ist Wird normalerweise dadurch verursacht, dass der Client die Verbindung nicht vollständig herstellt. Wenn der Benutzer beispielsweise die Schaltfläche „Stopp“ im Browser drückt, liegt im Allgemeinen kein Problem vor. Wenn es jedoch häufig auftritt, bedeutet dies, dass die Antwortzeit vieler Clients, die eine Verbindung zum Apache-Server herstellen, zu lang ist. Möglicherweise liegt ein Netzwerkproblem oder ein Problem mit der Serverleistung vor.

Möglicherweise liegen Probleme mit Ihrer Netzwerkverbindung vor und Ihre Datenübertragung. Manchmal kann es an einer zu langen Wartezeit liegen, aber das im Serversegment festgelegte Zeitlimit für die Verbindung ist sicher, dann kann diese Situation auftreten

Aber die häufigsten Gründe sind:

1: Die Anzahl der gleichzeitigen Verbindungen des Servers übersteigt seine Tragfähigkeit und der Server bricht einige der Verbindungen ab.

2: Der Client hat den Browser geschlossen, aber der Server ist still Senden von Daten an den Client;

3: Drücken Sie Stopp im Browser

4: Die Antwort des Servers an den Client wurde von der Firewall blockiert.


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
Vorheriger Artikel:Java-ParallelitätNächster Artikel:Java-Parallelität