javabean中的异常处理没有异常也会执行catch里的代码
public int executeUpdate(String sql)
{
int rowCount=0;
rs=null;
try
{
conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rowCount=0;
rowCount=stmt.executeUpdate(sql);
}
catch(Exception ex)
{
System.err.println( "db,excuteUpdate: "+ex.getMessage());
System.out.print( "false: ");//输出到客户端
return 0;
}
return 1;
}
以上是我定义个一个javabean中的一段代码,
我在jsp文件中调用这个函数来实现sql数据库中记录的插入。
问题是:
我每次都已经成功的把记录插入到数据库的表中了,
但是这个函数的返回值经常是0,很少返回1;
这是怎么回事啊,记录已经插入数据库那不是表示没有出现异常嘛,应该return 1啊,怎么还会去执行catch里面的程序,而且,也不是每次插入成功都执行catch里的代码的。
------解决方案--------------------信息太少了.
不过如果执行catch里的语句,那么就一定是抛异常了.你再好好找找.
如果想问问题的话,最好能多贴点信息出来.要学学问问题的艺术
------解决方案--------------------肯定抛出异常了
------解决方案--------------------System.err.println( "db,excuteUpdate: "+ex.getMessage());
前面加一句ex.printStackTrace();看看是不是有异常,你把异常打到err上去了,不一定看得到的
------解决方案--------------------有异常才回执行catch
------解决方案--------------------肯定会有异常的,连接都没有关闭!!最好写个finally
------解决方案--------------------conn,stmt等放在try外边定义
------解决方案--------------------另外,实在不明白的话,跟踪调试,肯定回发现问题的.
------解决方案--------------------System.err.println( "db,excuteUpdate: "+ex.getMessage());
这句打出的信息是什么呢?
------解决方案--------------------finally里 也要加try catch
修改成以下方式
catch(Exception ex)
{
System.err.println( "db,excuteUpdate: "+ex.getMessage());
System.out.print( "false: ");//输出到客户端
return rowCount;
}
return rowCount;
}
------解决方案--------------------直接return rowCount;也可以
public int executeUpdate(String sql)
{
int rowCount=0;
rs=null;
try
{
conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rowCount=0;
rowCount=stmt.executeUpdate(sql);
}
catch(Exception ex)
{
System.err.println( "db,excuteUpdate: "+ex.getMessage());
System.out.print( "false: ");//输出到客户端
}
return rowCount;
}
------解决方案--------------------System.err.println( "db,excuteUpdate: "+ex.getMessage());
建议在开发期间。将getMessage();换成ex.printStackTrace();
...................................