数字人面试官项目中的异常处理与状态码管理

引言

在数字人面试官项目的开发过程中,异常处理和状态码管理是确保系统稳定性和用户体验的重要环节。本文将介绍项目中如何进行异常处理,以及如何使用状态码枚举类来统一管理系统的响应状态。

异常处理机制

项目中使用 GraceException 类来实现优雅的异常处理,通过封装自定义异常,统一进行异常抛出。
 
 
public class GraceException {
    public static void display(ResponseStatusEnum statusEnum) {
        throw new MyCustomException(statusEnum);
    }
}
 

在业务逻辑中,如果出现异常情况,可以调用 GraceException.display 方法抛出相应的异常,同时携带状态码和错误信息。例如,在 QuestionLibController 中,如果应聘者信息不存在,会抛出 USER_INFO_NOT_EXIST_ERROR 异常。

 
 
@GetMapping("prepareQuestion")
public GraceJSONResult prepareQuestion(@RequestParam String candidateId) {
    String candidateInfo = redis.get(REDIS_USER_INFO + ":" + candidateId);
    String userToken = redis.get(REDIS_USER_TOKEN + ":" + candidateId);
    if (StringUtils.isBlank(candidateInfo) || StringUtils.isBlank(userToken)) {
        return GraceJSONResult.errorCustom(ResponseStatusEnum.USER_INFO_NOT_EXIST_ERROR);
    }
    // 其他业务逻辑
}
 

状态码枚举类 ResponseStatusEnum

ResponseStatusEnum 是一个枚举类,用于统一管理系统的响应状态码和消息。该枚举类包含了各种不同的状态码,如操作成功、操作失败、用户未登录、权限不足等。

 
 
 
public enum ResponseStatusEnum {
    SUCCESS(200, true, "操作成功!"),
    FAILED(500, false, "操作失败!"),
    UN_LOGIN(501, false, "请登录后再继续操作!"),
    NO_AUTH(503, false, "您的权限不足,无法继续操作!"),
    // 其他状态码
}
 

在控制器中,通过返回 GraceJSONResult 并携带相应的状态码和消息,将统一的响应格式返回给前端。例如,在 JobController 中,创建或更新职位信息成功后,返回 SUCCESS 状态码。
 
 
 
@PostMapping("createOrUpdate")
public GraceJSONResult createOrUpdate(@RequestBody JobBO jobBO) {
    jobService.createOrUpdate(jobBO);
    return GraceJSONResult.ok();
}
 
 
 
 
 

状态码的优势

使用状态码枚举类的好处主要有以下几点:

  1. 统一管理:将所有的状态码和消息集中在一个枚举类中,方便管理和维护。
  2. 可读性强:状态码和消息具有明确的含义,提高了代码的可读性。
  3. 易于扩展:当需要添加新的状态码时,只需在枚举类中添加新的枚举项即可。

总结

异常处理和状态码管理是数字人面试官项目中不可或缺的部分。通过 GraceException 类和 ResponseStatusEnum 枚举类,项目实现了统一的异常处理和状态码管理,提高了系统的稳定性和可维护性。在后续的开发过程中,我们可以根据业务需求不断完善和扩展状态码枚举类,以应对各种异常情况。
posted @ 2025-06-14 14:48  艾鑫4646  阅读(11)  评论(0)    收藏  举报