作用
- 在代码中使用自定义的异常类,可以对异常进行统一的封装处理,使得整个项目的异常处理更规范、更统一、更优雅。同时,使得日志的记录上更加清晰,便于后续查看日志定位问题。
步骤
需要自定义异常类,继承自系统的异常类。具体需要什么样类型的异常类,就继承自 相应的系统类。
- 如果你想写一个检查性异常,则需要继承自Exception类
如果你想写一个运行时异常,需要继承自RuntimeException
public class BusinessException extends Exception { private int errCode; private String errMsg; //无参构造 public BusinessException() { } //错误描述和错误代码 public BusinessException(int errCode, String errMsg) { super(errMsg); this.errCode = errCode; this.errMsg = errMsg; } public int getErrCode() { return errCode; } public String getErrMsg() { return errMsg; } }
在需要抛出该异常的类或方法中,定义当出现异常时抛出自定义异常类。
if(!matche){ //抛出一个自定义异常给上级,由方法调用者捕获 throw new BusinessException(ReturnCode.CODE_FAIL,"电话格式错误!"); //异常一抛,方法结束 }
在使用到该类或方法的地方捕捉该异常(或继续抛出,交给上级去处理),并对异常进行业务相关的响应与处理。
try { result=resolveExcelService.resolveExcel(file); } catch (BusinessException e) { //捕获异常 e.printStackTrace(); //后台打印 return ApiResponse.failOf(-1,e.getErrMsg()); //这个类能在前端展示异常类的错误描述 }
代码实例
- SpringMvc02/controller/ResolveExcelController,domain/ApiResponexcelse、BusinessException,service/ResolveExcelServiceImpl、ResolveExcelService