Spring 学习总结笔记【十三、SpringMVC异常处理器】

往期文章:

Spring 学习总结笔记【一、快速入门】
Spring 学习总结笔记【二、IoC-控制反转】
Spring 学习总结笔记【三、注解开发】
Spring 学习总结笔记【四、整合Junit】
Spring 学习总结笔记【五、配置数据源】
Spring 学习总结笔记【六、整合Mybatis】
Spring 学习总结笔记【七、AOP面向切面编程】
Spring 学习总结笔记【八、集成Web环境】
Spring 学习总结笔记【九、SpringMVC快速入门】
Spring 学习总结笔记【十、SpringMVC数据响应与请求】
Spring 学习总结笔记【十一、SpringMVC拦截器】
Spring 学习总结笔记【十二、Spring事务管理】

  • 程序开发过程中不可避免的会遇到异常现象

  • 所有的异常均抛出到表现层进行处理

  • 表现层处理异常,若每个方法单独书写会导致代码量巨大,可使用 AOP 思想解决

  • 异常处理器

    集中的、统一的处理项目中出现的异常

    在这里插入图片描述

异常处理开发步骤

① 新建异常处理类,并在类上标注注解 @ControllerAdvice (若为 RESTful风格则使用 @RestControllerAdvice

@RestControllerAdvice
public class ProjectExceptionAdvice {

}

② 在异常处理类中编写方法处理异常并标注注解 @ExceptionHandler

@RestControllerAdvice
public class ProjectExceptionAdvice {

	// 标注该方法处理什么种类的异常
	@ExceptionHandler(Exception.class)
	public void doException(Exception ex){
		System.out.println("出现异常了...");
	}
}

③ 在 Spring 配置类中扫描异常处理器所在包

因为我将我的异常处理类放在 controller 包下,所以我直接扫描 controller 包

在这里插入图片描述


项目异常处理方案

  • 项目异常分类

① 业务异常(BusinessException):

  • 规范的用户行为产生的异常
  • 不规范的用户行为操作产生的异常

解决:

  • 发送对应消息传递给用户,提醒规范操作

② 系统异常(SystemException):

  • 项目运行过程中可预计且无法避免的异常

解决:

  • 发送固定消息传递给用户,安抚用户
  • 发送特定消息给运维人员,提醒维护
  • 记录日志

③ 其他异常(Exception):

  • 编程人员未预期到的异常

解决:

  • 发送固定消息传递给用户,安抚用户
  • 发送特定消息给编程人员,提醒维护(纳入预期范围内)
  • 记录日志

自定义异常类

自定义异常类继承 RuntimeException,并实现所有的构造方法

public class BusinessException extends RuntimeException{
	private Integer code;
	
	public BusinessException(Integer code, String message) {
		super(message);
		this.code = code;
	}
	
	public BusinessException(Integer code, String message, Throwable cause) {
		super(message, cause);
		this.code = code;
	}
	
	public Integer getCode() {
		return code;
	}
	
	public void setCode(Integer code) {
		this.code = code;
	}
}

下期文章:

Spring 学习总结笔记【十四、SpringBoot快速入门】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值