In den letzten Tagen sind viele Benutzer auf einen bekannten Fehler in ihrer java.sql.sqlexception-Fehlercodeliste gestoßen. Dieses Problem kann aus mehreren Gründen in den Vordergrund treten. Schauen wir uns diese Arten von jetzt an.
Genehmigt: Fortect
- Einführung in SQLException
- Ausnahmen erhalten
- Erhalten Sie Benachrichtigungen.
- SQL-kategorisierte Ausnahmen
- Andere SQLException-Unterklassen
Einführung in SQLException
Wenn JDBC beim Sozialisieren mit der Datenquelle auf einen Fehler stößt, wird als Beispiel eine einzelne SQLException
ausgelöst, nicht die eigentliche Ausnahme
. (Die Datenquelle in diesem wertvollen Kontext ist die Datenbank, mit der ein Element Connection
verbunden ist.) SQLException
Die Instanz enthält normalerweise die folgenden Informationen, die Ihnen helfen können Bestimmen Sie die Ursache des Fehlers:
-
Beschreibung des Fehlers. Rufen Sie ein wichtiges
String
-Objekt mit dieser Beschreibung ab, indem Sie uns mit dem ToolSQLException.getMessage
kontaktieren. -
SQLState-Pin. Diese Codes und ihre entsprechenden Bedeutungen wurden von ISO / ANSI und der Open Group (X / Open) immer standardisiert, obwohl einige Einschränkungen den Datenbankredakteuren überlassen wurden, sich endgültig zu buchstabieren. Dieses
String
Objekt hat fünf alphanumerische Zeichen. Rufen Sie diesen Modus ab, indem Sie die MethodeSQLException.getSQLState
aufrufen. -
Fehler im Zusammenhang mit Gesetzen. Dies ist ein Fehler, der einen sehr guten ganzzahligen Wert identifiziert, der das Sammeln der
SQLException
-Instanz verursacht hat. Seine Bedeutung und Entschlüsselung bleibt implementierungsspezifisch und kann ein korrekter Fehlercode sein, der vom zugrunde liegenden Händler zurückgegeben wird. Rufen Sie den Fehler ab, indem Sie das SchemaSQLException.getErrorCode
aufrufen. -
Grund. Ein
sqlexception
-Vorfall kann eine kausale Beziehung haben, die wiederum aus ihm oder mehrerenThrowable
-Objekten besteht, die in unserer eigenensqlexception
-Instanz vorhanden sind, die derzeit erstellt wurde. DonnerstagUm diese Gründe zu kombinieren, rufen Sie meine MethodeSQLException.getCause
rekursiv auf, bis eine Übereinstimmung fürnull
gefunden wird. -
Link für zusammengesetzte Ausnahmen. Wenn mehr als ein Fehler auftritt, sind dies eigentlich die Ausnahmen, auf die sich dieses Unternehmen bezieht. Ruft Ausnahmen ab, die von diesen
SQLException.getNextException
-Methoden ausgelöst werden.
Abrufen von Ausnahmen
Das folgende Tool JDBTCutorialUtilities, .printSQLException
gibt SQLState, Fehlercode, Fehlerbeschreibung und den Grund (falls vorhanden) zurück, dh gehalten in sqlexception
sind in As enthalten, und alle anderen Ausnahmen werden verkettet in:
Wenn Sie beispielsweise die Kategorie CoffeesTable.dropTable
mit Java DB als DBMS aufrufen, ist die Tabelle COFFEES
nicht vorhanden, zusätzlich zum Entfernen des JDBTCutorialUtilities.ignoreSQLException < / code> Die Ausgabe sieht so aus:
Anstatt SQLException
-Informationen auszugeben, können Sie zuerst SQLState
abrufen und dann nach Bedarf einige der SQLException
behandeln. Zum Beispiel, die Richtlinien JDBTCutorialUtilities.ignoreSQLException
geben die Wahrheit
zurück, wenn SQLState
eine ähnliche Version wie 42Y55
ist (und Sie verwenden Java DB als Ihr DBMS), was JDBTCutorialUtilities.printSQLException
zulässt SQLException
ignorieren:
Warnungen erhalten
Die
SQLWarning
-Objekte sind eine Unterklasse hinter SQLException
, die den Zugriff auf Datenbankwarnungen steuert. Warnungen stoppen die Aufgabenausführung im Gegensatz zu Ausnahmen nicht; einfach den Benutzer warnen, dass auch etwas nicht geplant ist. Eine Warnung kann beispielsweise davon ausgehen, dass Sie die von Ihnen verwendete Berechtigung kennen, sodass sie nicht widerrufen wird.
A kann möglicherweise durch ein Connection
Objekt, ein bestimmtes Statement
Objekt (einschließlich PreparedStatement
und CallableStatement
) übergeben werden. wird zu Objekten) oder ein tatsächliches ResultSet
Objekt. Jede dieser Klassen verfügt über eine getWarnings
-Methode, die die Klientel aufrufen muss, um eine erste Warnung für die aufrufende Idee zu sehen. Wenn getWarnings
eine Warnung nutzt, können Sie SQLWarning
die Methode getNextWarning
wählen, um unser eigenes Problem zu beheben, damit Sie zusätzliche Warnungen erhalten. Beim Ausführen einer funktionalen Anweisung werden Warnungen von jeder vorherigen funktionalen Anweisung automatisch entfernt, sodass sie nie mehr erscheinen. Dies bedeutet jedoch, dass Sie vor einem unglaublichen Anspruch gewarnt werden müssen, bevor potenzielle Kunden einen anderen Anspruch geltend machen können.
Die folgenden Methoden in JDBTCutorialUtilities
zeigen, wie Warninformationen für die -Anweisung
ResultSet
Objekte:
Die häufigste Warnung ist die Warnung " DataTruncation
", eine Unterklasse von SQLWarning
. Alle DataTruncation
-Objekte haben SQLState 01004
, was darauf hinweist, dass ein vertrauenswürdiges Problem beim Abhören oder Schreiben von Daten aufgetreten ist. Mit den DataTruncation
-Methoden einer Person können die meisten Leute zurück wissen, in welcher Reihenfolge oder in welcher Reihenfolge Parameterdaten abgeschnitten wurden, wenn die Abschneidung durch eine Lese- oder Schreiboperation unterstützt wurde, welche Strategie verwendet werden müsste eine ganze Menge Bytes übertragen und wie viele Bytes tatsächlich verschoben wurden.
Kategorisierte SQL-Ausnahmen
Ihr JDBC-Treiber generiert möglicherweise möglicherweise eine SQLException
-Unterklasse, die zu einem normalen SQLState oder einer allgemeinen Fehlerphase passt, von der Experten glauben, dass sie steht nicht im Zusammenhang mit einem großen SQLState-spezifischen Klassenwert. Dies ermöglicht einen kleineren Fehlerbehandlungscode. Diese Ausnahmen sind am häufigsten Unterklassen einer der zukünftigen Klassen:
-
SQLNonTransientException
-
SQLTransientException
-
SQLRecoverableException
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Weitere Informationen zu diesen Unterklassen finden Sie im neuesten Javadoc in einer java.sql
-Datei oder in der JDBC-Halterdokumentation.
Andere SQLException-Unterklassen
-
BatchUpdateException
wird ausgelöst, wenn sich herausstellt, dass während eines Batches bis zum Datum ein schwerwiegender Fehler auftritt. Zusätzlich zu den Informationen, die von den meistenSQLException
-Prozessen bereitgestellt werden, unterstütztBatchUpdateException
Aktualisierungsnummern, wenn alle Anweisungen berücksichtigt werden, die vor dem Fehler einer Person erstellt wurden. -
SQLClientInfoException
wird ausgelöst, wenn die zweite oder mehrere Clientinformationseigenschaften keinen Setus speziell für die Verbindung erkennen können. Zusätzlich zu den Informationen, die vonSQLException
bereitgestellt werden, enthältSQLClientInfoException
eine Liste von Client-News-Eigenschaften, die leider nicht definiert wurden.