SQLException异常怎么解决?

deuso 2005-10-31 11:03:51
在调用一个方法时抛出SQLException,方法里进行了数据库的一些操作,如何不让他抛出异常?
...全文
1748 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanmabenteng 2005-10-31
  • 打赏
  • 举报
回复
这不能说明你的程序处理没有问题,在servlet加上一个main方法调用和放入容器调用参数一致吗?
打个比方说,如果有一个值为null,在容器中就会抛出异常.
你用什么IDE,跟一下,看哪出的异常
deuso 2005-10-31
  • 打赏
  • 举报
回复
我给servlet加上一个main方法
在main方法里调用没有出现异常
但是把servlet加入容器后调用就出现异常
地狱余烬 2005-10-31
  • 打赏
  • 举报
回复

有些类必须要写catch语句,有些类你可以不写catch语句,最好的方法就是解决你出现异常的原因。
yyouyou 2005-10-31
  • 打赏
  • 举报
回复
你进行了正确编写,就不会抛出异常:)
不过try 和catch还是要加上的
jxdn_yang 2005-10-31
  • 打赏
  • 举报
回复
异常是一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
zhanmabenteng 2005-10-31
  • 打赏
  • 举报
回复
为什么程序的健壮性,所以才有了异常机制,这样可以把程序逻辑和异常逻辑分开.
出异常肯定是你程序哪有问题了,先检查一下吧
deuso 2005-10-31
  • 打赏
  • 举报
回复
让Tomcat(servlet)访问数据库有什么要求吗?
为什么老是抛出SQLException
deuso 2005-10-31
  • 打赏
  • 举报
回复
public void doGet(HttpServletRequest request,HttpServletResponse response){
try{
response.setContentType("text/html;charset=GBK");
PrintWriter out=response.getWriter();

String name=request.getParameter("name");
String password=request.getParameter("password");

out.println("<HTML><HEAD><TITLE>登陆</TITLE></HEAD>"); //输出信息到客户端
out.println("<BODY>");

if (validateUser(name,password)){ //调用验证用户方法
out.println("<HTML><HEAD><TITLE>登陆成功</TITLE></HEAD><BODY><P><H3>登陆成功</H3></P></BODY></HTML>"); //显示验证结果

}
else{
out.println("<HTML><HEAD><TITLE>登录失败</TITLE></HEAD><BODY><P><H3>登录失败,可能是因为您的密码错误或您没有<a href = register.html>注册</a></H3>" +
"<a href = Frame-center.html >点此返回</a></P></BODY></HTML>");
out.println(name+"_"+password);
}



}
catch (Exception ex){
ex.printStackTrace(); //输出错误信息
}
}


public boolean validateUser(String name, String password) {
try{
String sqlStr="select * from client where name='"+name+"' and password='"+password+"'"; //SQL查询语句
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //装载数据库驱动
Connection con=DriverManager.getConnection("jdbc:odbc:sqlserver","sa","deuso"); //获取连接
Statement st=con.createStatement(); //获取PreparedStatement对象
ResultSet rs=st.executeQuery(sqlStr); //执行查询
if (rs.next()){ //查询结果
return true;
}
st.close();
}
catch (Exception ex){
ex.printStackTrace();
return false;
}
return false;
}
hllyq2000 2005-10-31
  • 打赏
  • 举报
回复
SQLException 应该是很重要的调试信息,
一般的写法
try{
}catch(SQLException ex){
ex.printStatckTrace();//这句话会在容器中把你的异常信息给打印出来
throw ex;//这个会把异常抛给你调用的方法
}
如果你不想看到异常信息,则可以这样
try{
}catch(SQLException ex){
log.debug(" some SQLException here");//如果有SQLException 会打印出来这句话
}
但是我反对这种做法,SQLException 是一种可以捕获和预料的,有可能是你的SQL不对,或者没取到连接,或者网络不同等等原因造成的,把异常抛出来或者ex.printStatckTrace();出来方便你调试程序,找出原因;你可以把异常信息进行包装,用一种友好的形式把它返回给用户(页面)
eidolon_warrior 2005-10-31
  • 打赏
  • 举报
回复
源代码和异常报错信息 贴出来看看
zhanmabenteng 2005-10-31
  • 打赏
  • 举报
回复
你程序有问题当然会抛的,看看字段是否匹配,等等.
你把异常信息帖出来看看
deuso 2005-10-31
  • 打赏
  • 举报
回复
"你的想法是不是当程序出现SQLException是不让程序异常终止,如果是那样别让它抛出异常就可以了,你可以使用try catch捕获异常,然后然后就可以按照你的要求去做."

那我应该怎么让它执行我的try里面的代码而不会抛出SQLException
try里面的代码是关于数据库操作的


deuso 2005-10-31
  • 打赏
  • 举报
回复
我用eclipse
bixuehui 2005-10-31
  • 打赏
  • 举报
回复
你的想法是不是当程序出现SQLException是不让程序异常终止,如果是那样别让它抛出异常就可以了,你可以使用try catch捕获异常,然后然后就可以按照你的要求去做.
  • 打赏
  • 举报
回复
你可以catch然后程序体里写空


81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧