Die Methode getCause()
gibt Ihnen die Ursache - falls vorhanden - des spezifischen SQLException
. Andererseits ist es bei der Verarbeitung durchaus möglich, dass mehrere Ausnahmen auftreten, man denke an Batch-Verarbeitung, serverseitige Fehler für mehrere Abfrageparameter (zB zu lange, Konvertierungsfehler etc.).
Diese mehreren Ausnahmen sind auf der gleichen Ebene (sie sind nicht gegenseitig Ursache), so dass sie zu einer Kette von SQLException
s hinzugefügt werden. Der Kopf dieser Kette ist die Ausnahme, die geworfen wird. Um zu den anderen SQLException
s in der Kette, verwenden Sie getNextException()
. Eg
try {
// Something that produces multiple SQLExceptions
} catch (SQLException e) {
SQLException current = e;
do {
// do something with current
} while ((current = current.getNextException()) != null)
}
Auf der anderen Seite ist ein SQLException
hat auch ein Verfahren public Iterator<Throwable> iterator()
(eingeführt in Java 6/JDBC4), diese iteriert über jeden SQLException
und ihre Ursachen, bevor in der Kette zu den nächsten SQLException
fortfahren.