我在NetBeans 8.1中構建了一個簡單的HelloWorld應用程序。 它的工作很簡單,只要它編譯並運行,它就會使用MySQL加載數據庫賬戶中表acc的所有數據。如何解決「未報告的異常InstantiationException;必須被捕獲或聲明爲拋出」
我已將Connector/J jar文件包含在我的項目庫中,並建立了與MySQL的連接,但是Class.forName(com.mysql.jdbc.Driver).newInstance();在一段代碼行顯示「未報告的異常InstantiationException;必須被捕獲或聲明被拋出」,我完全不知道該怎麼做。我有點卡在這裏。
這裏是我的代碼
package learning_jdbc;
import java.sql.*;
public class Hello {
Connection connection;
private void displaySQLErrors(SQLException e) {
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
}
public Hello() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (ClassNotFoundException e) {
System.out.println("Class not found.");
}
}
public void connectToDB() {
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/accounts","root","thejoker");
} catch(SQLException e) {
displaySQLErrors(e);
}
}
public void executeSQL() {
try (Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM acc")) {
while (rs.next()) {
System.out.println(rs.getString(1));
}
connection.close();
} catch(SQLException e) {
displaySQLErrors(e);
}
}
public static void main(String[] args) {
Hello hello = new Hello();
hello.connectToDB();
hello.executeSQL();
}
}
您認爲錯誤信息是什麼意思?你能重述嗎?這裏是我的嘗試:「你必須捕獲InstantiationException,或者你必須聲明它可以被拋出。」閱讀http://docs.oracle.com/javase/tutorial/essential/exceptions/。瞭解此消息的含義以及異常情況如何工作非常重要,但請注意,這行代碼不應該是必需的。 –