0

我正在尝试使用 zxing 从一组 jpeg 文件中读取和解码条形码。所以我将我的程序连接到一个 mysql 数据库,其中我有一个表,其中存储了每个 jpeg 文件路径。但是每次我的 try 块捕获异常时,它都会中断循环并在那里结束执行!我不得不去阅读更多关于尝试块的信息,但我似乎无法解决问题。请帮忙!!!真是让我头疼!这是我的代码的一部分:

int next_row=1;

String file="";

try 
{
        //Register the JDBC driver for MySQL.
        Class.forName(JDBC_DRIVER);
        Connection con = DriverManager.getConnection(DATABASE_URL,"user", "pass");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("select * from mrd");

        while (rs.relative(next_row))
        {
            file = rs.getString(3);
            //System.out.println(file);
            String p =  "mrd//" + file; 
            System.out.println("\nSending " + file + " to barcode reader");
            String b = a.readBarcode(p);
            //System.out.println(b);


        }

        con.close();                    
    }

    catch(NotFoundException e)
    {
        System.out.println(e + "- Error in " + "current_row");
    }

    catch(Exception e)
    {
        //System.out.println(e + "- Error in " + current_row);


    }
4

2 回答 2

0

您需要将 try-catch 块放在循环内,而不是在循环外;当抛出异常时,它会传递到第一个 catch 块,如果 catch 块在循环之外,那么它将退出循环。

您的 con.close() 也应该在 finally 块中,以确保正确释放资源。即使抛出异常,也保证执行 finally 块。

于 2013-04-14T17:17:48.393 回答
0

那是因为 try 在 while 循环之前,要么:

1)添加另一个循环来包装尝试

2)将try放在现有循环中

于 2013-04-14T17:18:19.320 回答