Java中自定义异常的使用

本文介绍了一个Java Web应用中的用户激活流程实现方法,包括自定义异常类、Service层异常抛出及控制层异常捕获与处理。通过具体代码示例展示了如何有效地进行异常管理和用户交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先自定义异常类

public class UserException extends Exception {
private static final long serialVersionUID = 1L;


public UserException() {
super();
}


public UserException(String message, Throwable cause) {
super(message, cause);
}


public UserException(String message) {
super(message);
}


public UserException(Throwable cause) {
super(cause);
}
}


主要使用父类构造方法

2.service中抛出自定义异常

public void activation(String code) throws UserException {
try {
User user = userDao.findByCode(code);
if (user == null) { //查不到用户,说明激活码无效
throw new UserException("无效的激活码");
}
if(user.getStatus()){ //如果用户状态为true,说明已激活
throw new UserException("你已激活过了,不要再次激活");
}
userDao.updateStatus(user.getUid(), true);
} catch (SQLException e) {
throw new RuntimeException(e);
}

}

3. 控制层捕获自定义异常,并显示到页面


public String activation(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//修改激活状态
String code = request.getParameter("activationCode");
try {
userService.activation(code);
request.setAttribute("msg", "恭喜,激活成功,请马上登录!");
request.setAttribute("code", "success"); //通知msg显示√
} catch (UserException e) {
//说明出错了
request.setAttribute("msg", e.getMessage());
request.setAttribute("code", "error"); //通知msg显示×
}
return "f:/jsps/msg.jsp";
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值