小白求助,try catch中catch不能抛出异常

qq_41373212 2017-12-12 09:48:09
package myservlet.control;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import jspmusic.Register;

/**
* Servlet implementation class HandleRegister
*/
public class HandleRegister extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;

public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
throw new ServletException(e);
}
}

public String handleString(String s) {
try {
byte bb[] = s.getBytes("UTF-8");
s = new String(bb);
} catch (Exception ee) {}
return s;
}


protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String uri = "jdbc:mysql://127.0.0.1:3306/jspmusic?user=root&password=123456";
Connection con;
PreparedStatement sql;
Register userBean = new Register();
request.setAttribute("userBean", userBean);
String logname = request.getParameter("logname").trim();
String password = request.getParameter("password").trim();
String again_password = request.getParameter("again_password").trim();
String phone = request.getParameter("phone").trim();
String email = request.getParameter("email").trim();
if (logname == null)
logname = "";
if (password == null)
password = "";
if (!password.equals(again_password)) {
userBean.setBackNews("两次密码不同,注册失败");

RequestDispatcher diapatcher = request.getRequestDispatcher("NewFile.jsp");
diapatcher.forward(request, response);
return;
}
boolean isLD = true;
for (int i = 0; i < logname.length(); i++) {
char c = logname.charAt(i);
if (!((c <= 'z' && c >='a') || (c <= 'Z' && c >= 'A') || (c <= '9' && c >= '0')))
isLD = false;
}
boolean boo = logname.length() > 0 && password.length() > 0 && isLD;
String backNews = "";

try {
con =DriverManager.getConnection(uri);
String insertCondition = "INSERT INTO user VALUES(?,?,?,?)";
sql =con.prepareStatement(insertCondition);
if (boo) {
sql.setString(1, handleString(logname));
sql.setString(2, handleString(password));
sql.setString(3, handleString(phone));
sql.setString(4, handleString(email));
int m = sql.executeUpdate();
if (m != 0) {
backNews = "注册成功";
userBean.setBackNews(backNews);
userBean.setLogname(logname);
userBean.setPhone(handleString(phone));
userBean.setEmail(handleString(email));

}
}
else {
backNews = "信息填写不完整或名字中有非法字符";
userBean.setBackNews(backNews);
}

con.close();

}
catch (SQLException exp) {
backNews = "该用户名已被使用,请你更换名字" + exp;
userBean.setBackNews(backNews);

}

RequestDispatcher dispatcher = request.getRequestDispatcher("NewFile.jsp");
dispatcher.forward(request, response);

}


protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
}
...全文
796 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a897645210 2017-12-13
  • 打赏
  • 举报
回复
你下面try catch,为什么方法上还要throws
张三顺 2017-12-13
  • 打赏
  • 举报
回复
虽然听不懂你在说什么,但是你在方法后面 throws 了,肯定不会抛出异常啊。
自由自在_Yu 2017-12-13
  • 打赏
  • 举报
回复
catch (SQLException exp) {
			backNews = "该用户名已被使用,请你更换名字" + exp;
			userBean.setBackNews(backNews);

		} catch (Exception e){
			e.printStackTrace();
		}
是SQL异常了吗?添加一个Exception

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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