Metoda podaje przyczynę - o ile w ogóle - tej konkretnej SQLException
. Z drugiej strony podczas przetwarzania jest całkowicie możliwe, że występuje wiele wyjątków, pomyśl o przetwarzaniu wsadowym, błędach serwerów dla wielu parametrów zapytania (np. Zbyt długie, błędy konwersji itp.).
Te liczne wyjątki znajdują się na tym samym poziomie (nie są ze sobą powiązane), dlatego są dodawane do łańcucha SQLException
s. Głowa tego łańcucha jest wyjątkiem, który jest rzucany. Aby przejść do innych numerów SQLException
w łańcuchu, należy użyć getNextException()
. Np
try {
// Something that produces multiple SQLExceptions
} catch (SQLException e) {
SQLException current = e;
do {
// do something with current
} while ((current = current.getNextException()) != null)
}
Z drugiej strony, SQLException
ma także sposób public Iterator<Throwable> iterator()
(wprowadzone w Javie 6/JDBC4), Ta iteracje nad każdym SQLException
i ich przyczyn przed przejściem do następnego SQLException
w łańcuchu.