Wie zu beheben SQLException in den Catch-Anweisung?
Dieses Programm ist über die auto-vervollständigen. Wenn ich etwas an der textfield
eine Liste mit Vorschlägen wird angezeigt.
Ich die Methode onWordUpdated()
für eine Liste der Vorschläge aus der DB, wenn ich etwas an der textfield
.
Nun, das problem ist ich habe diesen Fehler:
exception java.sql.SQLException is never thrown in body of corresponding try statement
Machte ich einen Kommentar in den code, so dass Sie wissen, welche Linie.
Könnte mir jemand helfen wie ich dieses Problem lösen?
Dank..
Habe ich diesen code:
public void onWordUpdated(final String toComplete)
{
new Thread(new Runnable()
{
public void run()
{
try
{
final List<Suggestion> suggestions = suggestor.getSuggestions(toComplete);
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
suggestionWidgetModel.clear();
for (Suggestion suggestion : suggestions)
suggestionWidgetModel.addElement(suggestion.getCaption());
if (!suggestions.isEmpty())
suggestionWidget.setSelectedIndex(0);
}
catch (SQLException e) //This line is my problem, Could someone help me how to fix this? Thanks..
{
e.printStackTrace();
}
}
});
}
catch (SQLException e1)
{
onSqlError(e1);
}
}
}, "onWordUpdated").start();
}
- bitte verwenden Sie code nur zur illustration. es ist schwer, die Frage zu verstehen, dass der code nicht im Zusammenhang mit dem problem und eine Frage versteckt in den Kommentaren.
- Was bedeutet die SQLException sagen?
- Was genau ist das problem? Was erwarten Sie von Ihrem code zu tun, und was ist es eigentlich? Wenn es wirft eine Ausnahme, dass Sie nicht erwarten können, Sie liefern mehr Informationen über das, was es sagt?
- Ausnahme java.sql.SQLException is never thrown in body of corresponding try statement
- Warum wollen Sie fangen nur
SQLException
es, versuchen Sie es einfachException
und sehen, was es sagt - das ist schrecklich Beratung. Fang
Exception
ist fast immer ein Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist der compiler einfach sagen Sie, dass Sie nicht brauchen, um zu fangen, die Ausnahme an diesem Punkt.
SQLException
ist eine checked exception, was bedeutet, dass Ihr code sollte nur sehen, wenn Sie entweder explizit werfen, oder Sie rufen eine Methode, die erklärt es in seinerthrows
- Klausel. Keines davon ist wahr, die für den code in diesem besonderen try/catch-block.Sollten Sie in der Lage sein, um Sie einfach loszuwerden, die inneren try/catch-block und wahrscheinlich auch die äußeren auch.
wenn ich mich Recht erinnere, ist es theoretisch möglich, um zu sehen, überprüft Ausnahmen, die nicht deklariert wurden, aber das ist unwahrscheinlich, zu entstehen, es sei denn, Sie nehmen bestimmte Schritte, um Sie geschehen.
MyLibrary.<RuntimeException>uncheckedThrow(new IOException())
. Hier ein prägnantes Beispiel: blog.jayway.com/2010/01/29/sneaky-throwJava hat zwei Arten von Ausnahmen: deaktiviert (die Erben von
RuntimeException
oderError
) und überprüft (alle anderen ErbenException
).Eine checked exception hat folgende Eigenschaften:
Exception
.throws SomeException
im code muss auch in ein try-catch oder die Methode muss auch angebenthrows SomeException
.Wegen der ersten beiden Prüfungen, der compiler kann erkennen, ob eine checked exception kann wirklich geworfen werden in einem bestimmten code-block. Als Ergebnis führt dies zu einer Dritten Eigenschaft:
Exception
geben, die nicht auftreten, in dertry
block, dann einen compile-Fehler generiert. Der compiler tut dies in Erster Linie, Ihnen zu sagen, dass Sie ' ve machte einen Fehler: Sie sind den Umgang mit einer Ausnahme, die niemals geworfen werden.SQLException
ist eine checked exception, so unterliegt es diese Regeln. Keine der lines of code (oder die Methoden, die Sie aufrufen) im try-block unten können immer werfen einSQLException
damit der compiler sagt Ihnen, über einen compile-Fehler.