从try / catch块内部返回变量

时间:2015-11-02 04:54:15

标签: java arrays return try-catch

晚上好。看,我遇到了这个大问题并且看不到它的解决方案,但我知道必须有办法解决这个问题......

public static int[] prices() throws Exception {
    try {
        Connection con = getConnection();
        Statement search = con.createStatement();
        ResultSet rs = search.executeQuery("SELECT nomeProd FROM main;");
        rs.last();
        int k = rs.getRow();
        rs.beforeFirst();
        int prices[] = new int[k];

        /*
        for( int i = 1; i <= k; i++ ) {

        }
        */

        return prices;
    } catch(Exception e) {
        System.out.println(e);
    }
}

所以,我需要的是从try-catch块中返回price数组,否则我将无法获得变量&#34; k&#34;。如果我在try块之前将k初始化为0,并在catch块之后创建数组,那么我将无法访问ResultSet变量(好吧,是的,我可以连接,创建一个语句和结果集到处都是再次,但这可能只会让我更头疼)。

任何人都可以帮我这个吗?谢谢!

1 个答案:

答案 0 :(得分:4)

只需在try/catch块之外声明您的变量,然后就可以在块内外访问它们。例如:

Connection con = null;
try {
         con = getConnection();
       // rest of code on the same lines

}