我创建了一个数据库类,以更好地理解单例类并学习Java。但是,我遇到了一个无法报告的异常,我似乎无法修复。

呼叫

private Connection con = ConnectionManager.getConnection();

Netbeans告诉我,这里有一个未报告的异常,但这是getConnection方法

public static Connection getConnection() throws SQLException  {
    boolean read = ReadFromConfig();
    if (read == true) {
         try {
            con = DriverManager.getConnection(urlstring, user, pass);
        } catch (SQLException ex) {
            throw new SQLException("Connection failed: " + ex);
        }
    }
    return con;
}

最佳答案

我怀疑问题是由静态getConnection()函数调用引起的。您正在定义一个可以抛出SQLException的方法(您在方法签名throws SQLException中定义了此方法),因此,在调用该方法时,必须添加这种情况,即可能在调用时捕获可能抛出的异常时间。以下代码片段向您展示如何解决该问题:

public class Test {
  public static int getConnection() throws Exception
  {
    int result = 1;
    try
    {
      result = 2;
    }
    catch (Exception ex)
    {
      throw new Exception("Connection failed: " + ex);
    }
    return result;
  }

  public static void main(String[] args) {
    try
    {
      Test.getConnection();
    }
    catch (Exception e)
    {
      // do something
    }
  }
}

关于java - 未报告的异常SQLException必须捕获或声明为抛出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41846771/

10-11 00:12