import java.io.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import java.sql.*; 
public class proBean
{
//定义内部使用的相应对象变量
ServletRequest req;
ServletResponse res;
ServletOutputStream out;  String ID  ;
String gridno ;
String type ;
String x ;
String y ;
String name ;
String dbName;
String tableName;
String m_URL;
String userName;
String userPasswd;

Connection Con;
Statement Stat;

public void proBean()     {} public void init(ServletRequest request,ServletResponse response)
{
  try
{
out=res.getOutputStream();
}
  catch(IOException e)
{
System.out.println("getOutputStream Error:"+e.getMessage());
}

try{

req=request;
res=response;

  dbName="test";   //数据库名字
  tableName="point";  //表
m_URL="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
userName="root";
userPasswd="cnk8";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Con=DriverManager.getConnection(m_URL);
Stat = Con.createStatement();
/*
if(request.getParameter("ID")!=null && request.getParameter("gridno")!=null&&request.getParameter("x")!=null&&request.getParameter("y")!=null&&request.getParameter("name")!=null){
  Enumeration enumt = request.getParameterNames();
    while(enumt.hasMoreElements()){
       str=enumt.nextElement().toString();
       out.println(str+":"+request.getParameter(str)+"<br>");
       }
     }
   */
   ID      = req.getParameter("ID");
gridno  = req.getParameter("gridno");
type    = req.getParameter("type");
x       = req.getParameter("x");
y       = req.getParameter("y");
name    = req.getParameter("name");

}
catch(Exception ex)
{
response.sendError(500,"sorry,some wrong happend");
out.println(ex.getMessage());
}
} public void execute()
{

try{

Stat.executeUpdate("insert into point(ID,gridno,type,x,y,name) values('"+ID+"','"+gridno+"','"+type+"','"+x+"','"+y+"','"+name+"')");
}
catch(IOException e)
{System.out.println("getOutputStream Error:"+e.getMessage());}
   
}

public void clean()
{
//释放资源,此处只是示例
req=null;
res=null;

// rs.close();
Stat.close();
Con.close();
}

}代码很简单,但是几个异常捕获有问题 ,编译不过。请大家帮忙改下异常捕获的地方。

解决方案 »

  1.   

    try{

    Stat.executeUpdate("insert into point(ID,gridno,type,x,y,name) values('"+ID+"','"+gridno+"','"+type+"','"+x+"','"+y+"','"+name+"')");
    }
    catch(SQLException e)
    {System.out.println("getOutputStream Error:"+e.getMessage());}
    自己发现问题了。这样就可以了。请大家简单说下错误处理的知识吧 我才学java  以前都是做C++ 
    麻烦大家了。
      

  2.   

    问题1:public void proBean() {},这个是成员方法吗,如果不是,删除返回值void
    问题2:response.sendError(500, "sorry,some wrong happend"); 其中的方法在ServletResponse中没有定义
    问题3:Stat.close(); Con.close(); 会抛出异常SQLException,直接用Exception捕获就可以了
      

  3.   

    catch(XXException e)
    这里的exception得是抛出的具体异常类或其父类
      

  4.   

    执行SQL语句的时候要捕捉SQL异常,个人感觉写的多了,一些异常自然背下来了,实在不知道的时候就用祖宗了
      

  5.   

    谢谢各位! 有没有什么好的 jsp 易懂的文章 推荐下