package com.example.springboot.utils;
import lombok.Getter;
@Getter
public class ServerException extends RuntimeException{
// RuntimeException
private String code = "500";
// 重写构造方法
public ServerException(String msg){
super(msg);
}
// 自定义一个code,msg 返回给前端 方便查看报错信息
public ServerException(String code,String msg){
super(msg);
this.code = code;
}
}
package com.example.springboot.utils;
import com.example.springboot.pojo.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
public class GlobalException {
@ExceptionHandler(ServerException.class) // 获取自定义的类
@ResponseBody // 转成 Json格式
public Result getError(ServerException e){
// e.getCode e.getMessage 获取到自定义信息 和 code 有报错会立马 报错
return Result.error(e.getCode(),e.getMessage());
}
}
用法:
package com.example.springboot.server;
import com.example.springboot.mapper.LoginMapper;
import com.example.springboot.pojo.UserData;
import com.example.springboot.utils.ServerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ServerLoginImp implements ServerLoginDao {
@Autowired
private LoginMapper loginMapper;
@Override
public UserData loginByUNameAndPwd(UserData user) {
UserData userName = loginMapper.ByUserName(user.getUsername());
if (userName == null){
throw new ServerException("404","用户不存在,请注册"); // 为空报错 抛出
}
UserData login = loginMapper.login(user);
if (login == null){
throw new ServerException("404","账号或密码错误"); // 没查出 抛出
}
return loginMapper.login(user);
}
}