使用JButtons与JDBC执行SQL查询
我在写一个简单的JAVA GUI来从JTextFrame读取SQL查询并执行它。连接和执行按钮都是JButton,但是编译器不会编译我的代码,因为我无法在我的侦听器私有类中为actionPerformed追加“throws SQLException”。我试着编写单独的方法,但同样的问题仍然存在。这里有一个例子:使用JButtons与JDBC执行SQL查询
public void connect() throws SQLException{
conxn = DriverManager.getConnection(URL, Username, Password);}
private class SelectBut implements ActionListener{
public void actionPerformed(ActionEvent event){connect();}}
编译器只是抛出在我这回:
TextFrame.java:123:未报告异常java.sql.SQLException中;必须被捕或宣布投掷
public void actionPerformed(ActionEvent event){connect();}}
有什么建议吗?
由于SQLException是检查异常,所以您必须重新抛出或捕获它。
你的情况您的actionPerformed方法可以是类似的东西:
public void actionPerformed(ActionEvent event){
try{
connect();
}catch(SQLException e){
e.printStackTrace();
}
}
这里一个tutorial关于捕捉和处理异常
是的,任何可能抛出一个execption的方法都必须在try/catch块内,或者调用此方法的方法必须重新抛出它。 – 2009-11-24 02:03:32
由于actionPerformed方法不包含throws子句,因此不能在实现中抛出任何检查的异常。你必须抓住它。 – duffymo 2009-11-24 02:28:50
对于它的价值,异常不应该像这样静静地吸收(或转换为运行时异常) - 这是将要发生在EDT上的调用,并且降低EDT并不是一个好主意。至少,显示带有错误消息的JOptionPane对话框。 在这里做的另一点是:数据库查询几乎肯定会是一个长期运行的任务 - 在EDT上运行是一个坏主意。我建议你多阅读一下开发Swing应用程序(SwingWorker在这里可能是个好主意) – 2009-11-24 03:55:56
接住或声明它抛出,就像*错误消息告诉你去*。你会意识到你不能声明它被抛出,所以我想你必须抓住它。哇,那很难。 – Bombe 2009-11-24 11:49:27