我的异常处理有什么问题(try - catch块)?

时间:2013-04-14 17:15:06

标签: java try-catch

我正在尝试使用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);


    }

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这是因为try在while循环之前,是:

1)添加另一个包装try

的循环

2)将try放在现有循环中