JAVA SQL捕获/声明异常

时间:2015-04-30 13:45:27

标签: java mysql database jdbc

有人可以告诉我如何修复我的Test类第8行的错误 我不知道wtf是错的还是如何搜索解决方案

主要课程

package T;    
public class Test {        
    public static void main(String[] args) {                    
        SQL sql = new SQL();
        sql.getData();//Error here "Unreported exception Exception; must be caught or declared to be thrown" 
    }
}

SQL类

package T;
public class SQL {
    private Connection connect = null;   

    public String getData() throws Exception {
        String name = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connect = DriverManager.getConnection("jdbc:mysql://localhost/vehicles?" + "user=sqluser&password=sqluserpw");
            Statement st = connect.createStatement();   
            ResultSet rs = st.executeQuery("SELECT * from vehicles.test");                    
            if (rs.next()) {
               name = rs.getString("word");
            } 
            return name;
        } 
        catch (Exception e) {
            throw e;
        }
    }
}

5 个答案:

答案 0 :(得分:1)

SQL类中的方法会抛出异常,而在main方法中,您不会处理该异常。这是一个经过检查的异常,所以你必须对它做些什么。 至少你需要像这样的简单捕捉

public static void main(String[] args) {

    SQL sql = new SQL();
    try{
      sql.getData();//Error here "Unreported exception Exception; must be caught or declared to be thrown" 
    }catch(Exception e){
      e.printStackTrace();
    }
}

答案 1 :(得分:0)

由于你的Calling方法抛出了异常,因此需要在Called方法中捕获该异常。所以只需将你的调用放在try catch块中。

答案 2 :(得分:0)

是必要的问号吗?这不是一个错字,你的意思是别的吗? 以下是java中sqlconnections的一些示例,它们看起来与您的有点不同。 How to make SQL connection statements common

答案 3 :(得分:0)

使用try-catch循环

简单地围绕您的行

答案 4 :(得分:0)

public String getData() throws Exception {
    //
}

此处throws Exception表示此方法可能会抛出Exception类型的异常,即checked exception

因此在调用此方法时必须处理它。意思是使用try/catch

This article可能会帮助您了解已检查和未检查的例外情况。