精华内容
下载资源
问答
  • Java提供了一些通用异常,但是通常不能满足我们的需求,因此自定义异常在软件开发中成为不可或缺的一部分,此处提供了一个简单的通过枚举实现的自定义状态码。 代码详解 设计一个接口,接口定义了状态码,消息信息...

    背景

    Java提供了一些通用异常,但是通常不能满足我们的需求,因此自定义异常在软件开发中成为不可或缺的一部分,此处提供了一个简单的通过枚举实现的自定义状态码。

    代码详解

    设计一个接口,接口定义了状态码,消息信息以及获取方式

    public interface MExceptionEnum{
        /**
        * 获取状态码
        * @return 状态码
        * /
        public String getCode();
        
        /**
        * 获取提示信息
        * @return 提示信息
        * /
        public String getMessage();
    }
    

    设计枚举类,实现上述接口,定义了具体的异常信息和状态码,当有新的状态码时,只需要添加一条对应的信息即可

    public enum ExceptionEnum implements MExceptionEnum{
       //自定义的状态码
       DATABASE_EXCEPTION("2000","数据库连接异常"),
       MONITOR_EXCEPTION("2001","文件监控异常")//错误码
       public String code;
       //提示信息
       public String message;
    
       //构造函数
       ExceptionEnum(String code,String message){
          this.code = code;
          this.message = message;
       }
    
       //获取状态码
       public String getCode(){
          return code;
       }
       
       //获取提示信息
       public String getMessage(){
          return message;
       }
     
    }
    

    创建一个异常类,可在整个类中通用,根据不同得场景,抛出不同的异常信息

    //此处异常类得名字建议用项目名加上Exception,整个项目的通用异常
    public class MiException extends RuntimeException{
        private ExceptionEnum exceptionEnum;
        
        public MiException(ExceptionEnum exceptionEnum){
           this.exceptionEnum = exceptionEnum;
        }
    
        public ExceptionEnum getExceptionEnum(){
           return exceptionEnum;
       }
      
      //用来输出异常信息和状态码
       public void printException(MiException e){
          ExceptionEnum exceptionEnum = e.getExceptionEnum();
          System.out.println("异常代码:" + exceptionEnum.getCode() + ",异常信息:" + exceptionEnum.getMessage());
       }
    }
    

    至此自定义异常就结束了,现在写一个测试类感受一下

    public class MiTest{
       public static void main(String []args){
          try{
             throw new MiException(ExceptionEnum.DATABASE_EXCEPTION);
          }catch(MiException e){
             e.printException(e);
          }
       }
    }
    

    执行主函数,得到的运行结果是

    异常代码:2000,异常信息:数据库连接异常
    
    展开全文
  • Java 自定义异常和抛出异常的练习demo
  • Java自定义接口状态码

    2021-06-09 10:53:05
    java自定义接口状态码 最近查阅了部分Java接口返回码设计的文章,于是参考另一篇文章,总体来说这个设计符合大多数系统,比较实用,原文地址暂无(抱歉)。 提示:写完文章后,目录可以自动生成,如何生成可参考...

    最近查阅了部分Java接口返回码设计的文章,于是参考另一篇文章,总体来说这个设计符合大多数系统,比较实用,原文地址暂无(抱歉)。




    接口中状态码由于要根据系统开发过程中不断添加,所以大致做了4个分类:1010 系统类、1020 权限类、1030 参数类、1040 业务类

    二、接口状态码和返回信息

    1. 枚举类

    部分代码如下(示例):

      SUCCESS(0,"success"),
      SERVER_ERROR(1010, "服务器异常"),
      DATABASE_ERROR(1011, "数据库错误"),
      UNKNOWN_ERROR(1012, "未知错误"),
      NO_PERMISSIONS(1020, "权限不足"),
      SIGN_ERROR(1030, "签名验证失败"),
      PARAM_ERROR(1031, "参数有误"),
      NO_MUST_PARAM(1032, "缺少必传参数"),
      INVALID_PARAM(1033, "非法参数"),
      FAIL(1040, "操作失败"),
      DATA_EXISTS(1041, "记录已存在"),
      FILE_ERROR(1042, "文件读写错误");
    

    2. 枚举类中get、set等方法

    部分代码如下(示例):

    ResultCode(int code, String message) {
        this.code = code;
        this.message = message;
      }
    

    3. AjaxResult返回类

    部分代码如下(示例):

    //状态码
        private Integer code = 0;
        //返回内容
        private String  msg  = "操作成功";
        //数据对象
        private T       data = null;
        
        public AjaxResult(ResultCode code, T data){
            this.code = code.getCode();
            this.msg = code.message;
            this.data = data;
        }
    

    Java自定义接口状态码下载


    总结

    可能写的比较简单一些,但是应该看上去还是比较容易理解的哈

    展开全文
  • 自定义异常状态码

    千次阅读 2020-06-06 18:51:39
    很多时候程序会有异常,可以将异常封装成一个类,用于做统一异常管理,去处理controller中出现的错误 /** 统一处理异常,处理controller出现的异常,能够精确匹配异常 basePackages:处理那个controller下的异常 */...

    很多时候程序会有异常,可以将异常封装成一个类,用于做统一异常管理,去处理controller中出现的错误
    /**

    • 统一处理异常,处理controller出现的异常,能够精确匹配异常

    • basePackages:处理那个controller下的异常
      */
      //@Slf4j日志记录注解,将错误信息记录为日志
      //@ResponseBody //以json的形式写出去
      @Slf4j
      //@ControllerAdvice(basePackages = “com.cc.mall.product.controller”)
      @RestControllerAdvice(basePackages = “com.cc.mall.product.controller”) //@ResponseBody和@ControllerAdvice()的合体
      public class MallExceptionControllerAdvice {
      //数据校验的异常
      //当controller出现异常的时候,就会来到这里就是MethodArgumentNotValidExceptione 这个是数据校验的时候的具体异常,根据终端打印的来相应修改
      @ExceptionHandler(value = MethodArgumentNotValidException.class) //这个注解告诉springmvc这个异常处理类用于处理什么异常
      public R handleVaildException(MethodArgumentNotValidException e){

       log.error("数据校验出现问题{},异常类型{}",e.getMessage(),e.getClass());
       BindingResult bindingResult = e.getBindingResult();
       Map<String,String> errorMap = new HashMap<>();
       bindingResult.getFieldErrors().forEach((item)->{
           //1.获取错误消息
           String message = item.getDefaultMessage();
      
           //2.获取错误的属性名
           String field = item.getField();
      
           errorMap.put(field,message);
       });
       return R.error(BizCodeEnume.VAILD_EXCEPTION.getCode(),BizCodeEnume.VAILD_EXCEPTION.getMsg()).put("data",errorMap);
      

      }

      /**

      • 对于无法精确匹配的异常进行处理

      • @return
        */
        @ExceptionHandler(value = Throwable.class)
        public R handleException(Throwable throwable){

        return R.error(BizCodeEnume.UNKNOW_EXCEPTION.getCode(),BizCodeEnume.UNKNOW_EXCEPTION.getMsg());

      }

    }

    2.同时可以编写个错误码和错误信息定义类
    **1.错误码定义规则为5位数字

    • 2.前两位表示业务场景,最后三位表示错误码。如100001 。10:通用,001:系统未知异常
    • 3.维护错误码后需要维护错误描述,将他们定义为枚举形式
    • 错误码列表
    • 10:通用
    • 001,参数格式校验
    • 11:商品
    • 12:订单
    • 13:购物车
    • 14:物流**

    public enum BizCodeEnume {

    //系统未知异常
    UNKNOW_EXCEPTION(10000,"系统未知异常"),
    
    //验证异常状态码
    VAILD_EXCEPTION(10001,"参数格式校验失败");
    
    
    //枚举就是个私有的构造器
    private int code;
    private String msg;
    
    BizCodeEnume(int code,String msg){
        this.code = code;
        this.msg = msg;
    }
    
    public int getCode() {
        return code;
    
    }
    
    
    
    public String getMsg() {
        return msg;
    }
    

    }

    展开全文
  • JAVA 自定义状态码

    2015-11-06 11:22:00
    String PARAMS_ERR = "参数异常" ; 4 public static final String SERVER_ERR = "服务器端错误" ; 5 public static final String DATABASE_ERR = "数据库错误" ; 6 public static final ...

    返回信息类(ResponseInfo):

     1 public class ResponseInfo {
     2 
     3   public static final String Status = "status";
     4   public static final String Info = "info";
     5 
     6   private String status;
     7   private String info;
     8 
     9   public String getStatus() {
    10     return status;
    11   }
    12   public void setStatus(String status) {
    13 
    14     this.status = status;
    15   }
    16   public String getInfo() {
    17     return info;
    18   }
    19   public void setInfo(String info) {
    20     this.info = info;
    21   }
    22 }

     

     状态类(Status):

    1 public class Status {
    2   public static final String RESPONSE_OK = "success";
    3   public static final String RESPONSE_ERR = "failed";
    4 }

     提示信息类(Info):

     1 public class Info {
     2 
     3 public static final String PARAMS_ERR = "参数异常";
     4 public static final String SERVER_ERR = "服务器端错误";
     5 public static final String DATABASE_ERR = "数据库错误";
     6 public static final String UNKNOWN_ERR = "未知错误";
     7 public static final String NODATA = "无数据";
     8 
     9 public static final String DATAEXISTS = "记录已存在";
    10 public static final String DELETEERR = "删除失败";
    11 public static final String UPDATEERR = "修改失败";
    12 
    13 public static final String NOTLOGIN = "未登录";
    14 public static final String LOGIN = "已登录";
    15 public static final String REGISTER = "注册成功";
    16 
    17 public static final String NORIGHT = "未通过审核";
    18 public static final String RIGHT = "已通过审核";
    19 public static final String NOEXAMINE = "仍未审核";
    20 }

     

    转载于:https://www.cnblogs.com/sweetyu/p/4942094.html

    展开全文
  • java 自定义状态码

    千次阅读 2018-08-13 12:28:03
    说明用中文而已,对应springframework的状态码的类 org.springframework.http.HttpStatus 参考 https://blog.csdn.net/razeSpirit/article/details/78030947 的状态码定义 /** * PRODUCT_NAME: IntelliJ...
  • java枚举自定义返回状态码

    千次阅读 2021-03-11 15:14:43
    java枚举自定义返回状态码 1.设计一个接口,接口定义了状态码,消息信息以及获取方式 public interface CodeEnum { /** * 获取状态码 * @return 状态码 * **/ public String getCode(); /** * 获取提示...
  • 主要给大家介绍了Spring boot自定义http反馈状态码的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
  • Springboot自定义状态码异常

    千次阅读 2020-05-30 13:35:57
     最近在写一个小项目,突然想到可以自定义一个异常来处理用户未找到的情况,并且返回相应的状态码和信息。所以我翻了一下我以前学习SpringBoot时的笔记,稍微写了一下。 首先写一个自定义状态码枚举 package top....
  • Java自定义异常封装

    千次阅读 2019-05-28 16:11:52
    Java里面的异常在真正工作中使用还是十分普遍的。什么时候该抛出什么异常,这个是必须知道的。 在给出异常分装例子之前,需要给大家普及Java里面的checked异常和unchecked异常的个概念。 一、checked异常和...
  • 自定义http状态码

    2021-03-24 18:14:28
    先定义一个异常类 @ResponseStatus(code=HttpStatus.INTERNAL_SERVER_ERROR,reason="111") public class ServerException extends Exception { } 然后往出抛异常别捕获 @RequestMapping(value = "/user", method =...
  • 第一次写博客,暂时在构建一个SpringBoot后台项目 前端准备采取Vue,后台采取java...第一篇 关于SpringBoot自定义异常: 第一步,创建自定义异常,源码如下: BizException: public class BizException exte...
  • java自定义异常(runtimeException)

    千次阅读 2018-05-06 12:54:51
    //自定义异常码 public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public MyException(String message, Integer code) { super(message);//...
  • java自定义异常并直接抛出到前端 问题描述 有时候在后台编写业务逻辑时,可能会遇到异常捕获并抛出处理的情况,基本上来说只需要使用try-catch来判断即可,遇到一些比较复杂的逻辑,try-catch还是很有必要的,但是...
  • JAVA异常分类和自定义异常定义

    千次阅读 2019-06-10 11:16:59
    异常概念: 1、如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下 会抛出一个...2、Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 Exception Error 1....
  • Java自定义异常类统一处理异常

    千次阅读 2019-08-30 10:39:46
    当程序发生异常时,会返回一大堆不友好的内容,非常不美观! 我们在写代码的时候,对异常处理一般是try catch或者抛出异常throws Exception。 try catch大家都知道,代码中大量的try catch会占用内存影响性能,...
  • java实现自定义异常并全局捕获

    千次阅读 2019-08-09 15:50:26
    在工作过程中,我们常常需要在合适的地方抛出合适的异常,除了java...那么,如何自定义异常呢? 1.首先需要一个自定义异常类,OrderException(需要继承RuntimeException) public class OrderException exten...
  • 这里 如果 返回的是null 代码正常可运行,但是页面的控制台的status 却是500,如果返回的是 new 一个 ModelAndView 的话,页面正常 ,状态码为200 ,但是其中是什么逻辑 ,我不清楚,为什么返回null的时候 页面...
  • SpringBoot自定义异常体系和错误规范定义(个人经验总结)
  • SpringBoot自定义异常和全局捕获异常实现简介1、自定义异常1.1、自定义异常枚举类1.2、自定义异常类1.2.1、创建异常基类 BaseException1.2.2、创建用户模块异常类 UserException.java2、全局异常捕获实现 ...
  • Java自定义异常的使用

    千次阅读 2017-09-18 21:59:54
    1.先自定义异常类 public class UserException extends Exception { private static final long serialVersionUID = 1L; public UserException() { super(); } public UserException(String message, ...
  • java自定义异常处理类

    2018-08-30 08:51:14
    * 为什么使用自定义异常? * 更加精确定位具体异常信息 * * 继承RuntimeException,实现RuntimeException的所有构造方法,就是一种自定义异常类 * */ public class ServiceException extends RuntimeException {...
  • java项目中自定义业务异常

    千次阅读 2017-07-07 23:53:06
    java Web开发过程中会遇到各种的业务异常,如扣款余额不足,重复提交,重复秒杀等,我们在后台java代码中最好的方式是将这种通过异常的方式来捕获,然后逐级上抛,最终在页面上给出提示,在网上看到的一些代码贴...
  • java一个简单的自定义异常工具类

    千次阅读 2017-09-30 11:19:29
    package com.xxx.commons.base; /** * 自定义异常 */ public class BaseException extends Exception { // 序列化UID private static final long serialVersionUID = 8243127099991355146L; // 错误 pr
  • 真正工作了才发现,Java里面的异常在真正工作中使用还是十分...当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误异常描述。 在给出异常分装例子之前,需要给大家普及Java里面的checked异常和un

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,176
精华内容 27,270
关键字:

java自定义异常状态码

java 订阅