以下是我的servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import database.*;
import comm.tool.MD5;
public class ChangePassword extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws SQLException,ServletException,IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws SQLException,ServletException,IOException {
……..
……..
……..
}
_______________________________________________________________________________
省略部门包括访问数据库,更新,关闭数据库链接等操作,但编译时出现如下错误:
这是什么意思?怎么解决?
C:\Classes>javac ChangePassword.java
ChangePassword.java:9: doGet(javax.servlet.http.HttpServletRequest,javax.servlet
.http.HttpServletResponse) in ChangePassword cannot override doGet(javax.servlet
.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) in javax.servle
t.http.HttpServlet; overridden method does not throw java.sql.SQLException
public void doGet(HttpServletRequest request,HttpServletResponse respons
e)
^
ChangePassword.java:14: doPost(javax.servlet.http.HttpServletRequest,javax.servl
et.http.HttpServletResponse) in ChangePassword cannot override doPost(javax.serv
let.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) in javax.ser
vlet.http.HttpServlet; overridden method does not throw java.sql.SQLException
public void doPost(HttpServletRequest request,HttpServletResponse respon
se)
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws SQLException,ServletException,IOException {
}
定义的时候应该自己去处理SQLException,因为你覆写的doGet方法没有跑出这个异常
就是说你的doGet方法应该这样,把SQLException去掉
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
当你覆写父类的doGet方法时,不能比父类该方法抛出更多的异常。
我指的父类是HttpServlet,你不能够抛出比HttpServlet当中doGet方法抛出的更多异常
如果你在doget方法中调用某个方法,有可能抛出SQLException,你可以这样处理
try{
yourmethod()
}
catch(SQLException e)
{
throw new ServletException(e.getMessage());
}
这样就可以转化了