java使用枚举封装错误码及错误信息详解

目录
  • 枚举封装错误码及错误信息
    • 用法如下
  • 封装返回结果类和枚举错误码
    • 枚举错误码
    • 封装返回结果类

枚举封装错误码及错误信息

使用枚举类型来封装project中所需要的错误码和错误信息,十分方便。

用法如下

package com.dear.simpler.dbservice;
/**
 *
 * @author lixiang
 *使用枚举类型来封装异常码和异常信息
 *
 */
public enum DBServiceError {
	 //RPC层调用错误码
	 DB_SERVICE_OK(20100,"服务正常")
	,DB_SERVICE_DBDAO_ERROR(20104,"返回数据库的具体异常信息")

	,DB_SERVICE_SPEAKER_NOT_EXISTED(20108,"数据库中没有要查询的speaker")
	,DB_SERVICE_SPEAKER_HAVE_NOT_VP(20109,"speaker中没有对应的voiceprint")

	,DB_SERVICE_UNKNOWN_ERROR(20101,"未知异常")
	,DB_SERVICE_AGENT_ERROR	(20102,	"DBServiceAgent异常")
	,DB_SERVICE_NETWORK_ERROR (20103,"网络异常")

	,DB_SERVICE_INVALID_FUNCTION(20105,	"方法名不存在")
	,DB_SERVICE_INVALID_PARAMETER(20106,"方法参数错误")
	,DB_SERVICE_FUNCTION_NO_ACCESS(20107,"对此方法无访问权限");

    private String msg;
    private int code;
    private DBServiceError(int code,String msg)
    {
    	this.code=code;
        this.msg=msg;
    }

    public String getMsg()
    {
        return this.msg;
    }
    public int getCode() {
      return this.code;
  }
}

使用时:

DBServiceError.DB_SERVICE_NETWORK_ERROR.getCode();

DBServiceError.DB_SERVICE_NETWORK_ERROR.getMsg();

封装返回结果类和枚举错误码

枚举错误码

/**
 * 枚举错误码
 */
public emum ErrorCode{
    FAILED(601,"操作失败"),
    AUTH_ERROR(401,"认证失败"),
    SYS_ERROR(500,"系统错误"),
    PARAM_ERROR(400,"参数错误"),
    UNKNOWN_ERROR(499,"未知错误");

    private int code;
    private String message;
    private ErrorCode(int code, String message) {
     this.code=code;
        this.message=message;
    }
    public String getMessage() {
        return this.message;
    }
    public int getCode() {
        return this.code;
    }
}

封装返回结果类

/**
 * 返回结果类
 */
public class JsonResult {
 private int status = 0;
 private String msg = "success";
 private Object data;
        // 几个常用方法
 public JsonResult success() {
            return new JsonResult();
        }

        public JsonResult success(Object data) {
            return new JsonResult(data);
        }

        public JsonResult error(ErrorCode errorCode) {
            return new JsonResult(errorCode.getCode(), errorCode.getMessage());
        }

        public JsonResult error(int state, String message) {
            return new JsonResult(state, message);
        }

        public JsonResult error(int state, String message, Object data) {
            return new JsonResult(state, message, data);
        }

        // 几个构造方法
        public JsonResult() {
        }

        public JsonResult(Object data) {
            this.data = data;
        }

        public JsonResult(Integer state, String message) {
            this.state = state;
            this.message = message;
        }

        public JsonResult(Integer state, String message, Object data) {
            this.state = state;
            this.message = message;
            this.data = data;
        }

 public Integer getStatus() {
  return status;
 }

 public void setStatus(Integer status) {
  this.status = status;
 }

 public String getMsg() {
  return msg;
 }

 public void setMsg(String msg) {
  this.msg = msg;
 }

 public Object getData() {
  return data;
 }

 public void setData(Object data) {
  this.data = data;
 }
}

完美!!!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java(enum)枚举用法详解

    概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值.以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2 枚举的好处:可以将常量组织起来,统一进行管理. 枚举的典型应用场景:错误码.状态机等. 枚举类型的本质 尽管enum 看起来像是一种

  • Java封装统一的Result Model案例

    在开发过程中,有时候会需要使用错误码+错误信息的形式,来返回某些业务操作的错误结果信息,来代替效率较低的异常传递. 这样就需要封装一个统一的Result model作为返回值,代替直接返回数据等结果. 1.定义错误码 - 错误信息接口 错误码可能是String.Integer.Long 等类型,也可能是enum类型.因此这里使用泛型来代替,错误码类型,可以提高灵活性 .也可以通过枚举直接实现CodeMessage接口. public interface CodeMessage<C>{ C ge

  • Java中枚举的使用详解

    枚举简介:  为什么要用枚举: 枚举是Java1.5出来之后新增的类型,它可以用来定义一组取值范围固定的的变量. 在枚举没有出来之前,要定义这样的变量,往往是通过定义一个接口,将不同的变量 使用不同的整数赋值.但是这样的却有着很明显的缺点: 1.不能保证其定义数值的合法性: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数据集",春夏秋冬四个数据

  • Java枚举使用方法详解

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数据集",春夏秋冬四个数据元素组成了四季的"数据集". 在java中如何更好的使用这些"数据集"呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法. package com.ljq.test; /** * 枚举用法详解 * * @author jiqinli

  • Java枚举的使用方法详解

     Java枚举的使用方法详解 前言  你代码中的flag和status,都应该用枚举来替代 很多人都说,枚举在实际开发中很少用到,甚至就没用到.因为,他们的代码往往是这样子的: public class Constant { /* * 以下几个变量表示英雄的状态 */ public final static int STATUS_WALKING = 0;//走 public final static int STATUS_RUNNINGING = 1;//跑 public final stati

  • java使用枚举封装错误码及错误信息详解

    目录 枚举封装错误码及错误信息 用法如下 封装返回结果类和枚举错误码 枚举错误码 封装返回结果类 枚举封装错误码及错误信息 使用枚举类型来封装project中所需要的错误码和错误信息,十分方便. 用法如下 package com.dear.simpler.dbservice; /** * * @author lixiang *使用枚举类型来封装异常码和异常信息 * */ public enum DBServiceError { //RPC层调用错误码 DB_SERVICE_OK(20100,"服

  • 微信企业号 根据错误码返回错误信息类封装

    微信企业号根据错误码返回错误信息类封装 微信开发中返回错误码每次需要查询错误返回码文档才知道具体的错误信息(查看返回的errormsg也可知道),因此封装一个 错误码返回的类来查看! 纯粹的体力劳动!!! <span style="font-size:14px;">package org.oms.wechat.utils; /** * 企业号根据错误码返回错误信息类 * @author sunlight * */ public class ErrorCodeText { p

  • Java String index out of range:100错误解决方案详解

    问题出错情况:字符串截取长度,没有那么长的长度所以截取失败. 在这里进行debug之后可以看到,异常在substring中: 也就是判断字符串的时候报错:具体原因就是string字符串indexof的值本身只有5,然后在这里去取其第100 个字符作为截止,因此就会报这个错: 知识点:主要是堆String概念不清.下面针对字符串相关概念做一个简介. 针对上述问题解决办法: 到此这篇关于Java String index out of range:100错误解决方案详解的文章就介绍到这了,更多相关J

  • java 中枚举类enum的values()方法的详解

    java 中枚举类enum的values()方法的详解 前言: 关于枚举,相信使用的已经很普遍了,现在主要写的是枚举中的一个特殊方法,values(), 为什么说特殊呢,因为在Enum 的 API 文档中也找不到这个方法.接下来就看看具体的使用. 理论上此方法可以将枚举类转变为一个枚举类型的数组,因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变为数组之后,我们就可以通过数组的下标,来找到我们需要的枚举类.接下来就展示代码了. 首先是我们自己的枚举类. public e

  • java如何根据IP获取当前区域天气信息详解

    大致思路是客户端发起请求,我们首先根据请求获取到外网IP,然后再根据外网IP获取到用户所在城市,最后根据城市获取到天气信息 获取外网IP 万网获取外网IP地址:www.net.cn/static/cust- /** * @Description:获取客户端外网ip 此方法要接入互联网才行,内网不行 **/ public static String getPublicIp() { try { String path = "http://www.net.cn/static/customercare/

  • 使用java技术抓取网站上彩票双色球信息详解

    前言 现在很多web应用,做过web项目的童鞋都知道,web结果由html+js+css组成,html结构都有一定的规范,数据动态交互可以通过js实现. 有些时候,需要抓取某一个你感兴趣的网站信息,一个网站信息肯定是通过某一个url,发送http请求,根据地址定位的,当知道这个地址,可以获取到很多的网络响应,需要认真分析,找到你那一个合适的地址,最后通过这个地址返回一个html给你,我们可以得到这个html,分析结构,解析这个结构获取你要的数据.Html的结构解析往往是复杂繁琐的,我们可以使用j

  • Java枚举学习之定义和基本特性详解

    目录 枚举的定义 1.题目 2.解题思路 3.代码详解 枚举的基本特性 1.题目 2.解题思路 3.代码详解 4.多写一个知识点 增加枚举元素信息 1.题目 2.解题思路 3.代码详解 枚举的定义 1.题目 枚举是JAVA 5.0后增加的一个重要类型.可以用来表示一组取值范围固定的变量.使用enum关键字,可以定义枚举类型. 实现:使用反射查看枚举的修饰符,父类和自定义方法. 2.解题思路 创建一个枚举:Position 定义两个元素,来表示方位. 对于枚举的元素命名方式:全部为大写字母. 创建

  • Java 类型信息详解和反射机制介绍

    RTTI RTTI(RunTime Type Information)运行时类型信息,能够在程序运行时发现和使用类型信息,把我们从只能在编译期知晓类型信息并操作的局限中解脱出来 传统的多态机制正是 RTTI 的基本使用:假设有一个基类 Shape 和它的三个子类 Circle.Square.Triangle,现在要把 Circle.Square.Triangle 对象放入 List<Shape> 中,在运行时,先把放入其中的所有对象都当作 Object 对象来处理,再自动将类型转换为 Shap

  • 关于Java变量的声明、内存分配及初始化详解

    实例如下: class Person { String name; int age; void talk() { System.out.println("我是: "+name+", 今年: "+age+"岁"); } } public class TestJava2_1 { public static void main(String args[]) { Person p; if (p == null) { p = new Person(); }

  • java开发分布式服务框架Dubbo暴露服务过程详解

    目录 Dubbo服务暴露机制 前言 服务暴露流程 源码解析 本地暴露 远程暴露 Dubbo服务暴露机制 前言 在进行服务暴露机制的分析之前,必须谈谈什么是URL,在Dubbo服务暴露过程中URL是无处不在的,贯穿了整个过程. 一般情况下,URL指的是统一资源定位符,标准格式如下: protocol://host:port/path?key1=value1&key2=value2 Dubbo就是用这种URL的方式来作为约定的参数类型,服务之间也是用URL来进行交互. Dubbo用URL作为配置总线

随机推荐