我正在尝试使用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);
}
答案 0 :(得分:0)
你需要把try-catch块放在循环内部,而不是在它之外;当抛出异常时它会传递给第一个catch块,如果catch块在你的循环之外,那么它将退出循环。
你的con.close()也应该在finally块中,以确保正确释放资源。即使抛出异常,也可以保证finally块的执行。
答案 1 :(得分:0)
这是因为try在while循环之前,是:
1)添加另一个包装try
的循环2)将try放在现有循环中