ErrorCode枚举类型返回错误码信息测试,手动抛出异常信息,在事务中根据错误码来回滚事务的思路。

ErrorCode.java 简单测试代码,具体应用思路:手动抛出异常信息,在事务中根据错误码来回滚事务的思路。

public enum ErrorCode {
    //系统级
    SUCCESS("000000","success"),
    SYS_ERROR("999999","系统异常"),
    FAILED("900000","操作失败!"),
    //交易部分
    OWNER_NOT_EXIST("500002","用户(车主)不存在"),
    ;

    private String code;
    private String text;

    private ErrorCode(String code, String text) {
        this.code = code;
        this.text = text;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {

        this.text = text;
    } 

    public static void main(String[] args) {

        ErrorCode error = ErrorCode.FAILED;
        try {
            error = testFun(100);    //测试方法。
        } catch (Exception e) {
            System.err.println("e: " + e);
            String errorMsg = e.getMessage();
            System.err.println("errorMsg: " + errorMsg);
            System.err.println("errorMsg2: " + e.getLocalizedMessage());

            if(errorMsg != null){
                String[] msg = errorMsg.split(",");
                if(msg != null && msg.length > 0){
                    ErrorCode.SYS_ERROR.setCode(msg[0]);
                    ErrorCode.SYS_ERROR.setText(msg[1]);
                }
            }
            //返回错误码
            error = ErrorCode.SYS_ERROR;
            System.err.println("code: " + error.getCode() );
            System.err.println("text: " + error.getText() );

        }

    }

    private static ErrorCode testFun(int i) throws Exception {
        System.err.println("接收到的参数值:" + i);
        ErrorCode error = ErrorCode.OWNER_NOT_EXIST;
        String errorMsg = error.getCode() + "," + error.getText();  //将异常信息返回。
        throw new Exception(errorMsg);      //手动抛出异常。
//        throw new Exception();      //手动抛出异常。
        //return null;
    }
}
 
时间: 2024-08-02 14:56:59

ErrorCode枚举类型返回错误码信息测试,手动抛出异常信息,在事务中根据错误码来回滚事务的思路。的相关文章

返回枚举值的描述 根据枚举类型返回类型中的所有值、文本及描述

/// <summary> /// 返回枚举值的描述 /// </summary> /// <param name="value">枚举值</param> /// <returns>指定枚举值描述</returns> public static string getEnumDescription(this Enum value) { FieldInfo fi = value.GetType().GetField(v

Java5 枚举类型使用总结

Java5 枚举类型使用总结 一.概述 枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示.Tiger 专家.developerWorks 的多产作者 Brett McLaughlin 将解释枚举的定义,介绍如何在应用程序中运用枚举,以及它为什么能够让您抛弃所有旧的 public static final 代码. 枚举在什么地方适用呢?一条普遍规则是,任何使用常量的地方,例如目前用 switch 代码切换常量的地方.如

java 枚举类型使用总结

注:阅读了effective java 讲诉enum的部分,做下笔记,下文中大部分代码来自effective java书中 枚举类型是指由一组固定的常量组成的合法值得类型. 使用枚举的好处:a,因为没有可以访问的构造器,枚举类型是真正的final; b,枚举类型提供类编译时的类型安全.如:函数中声明一个参数类型为枚举类型的Apple时,那么调用方法时传递到参数上的任何非null对象一定是Apple的值之一, 而是用静态常量就无法保证; c,包含同名常量的多个枚举类型可以和平共处,每个类型都有自己

从一个int值显示相应枚举类型的名称或者描述

我正在做一个出入库管理的简单项目,在Models里定义了这样的枚举类型 public enum InOrOut { [Description("出库")] Out = 0, [Description("入库")] In = 1 } 我想在输入参数为数据库字段值1或者0的时候,在页面上显示为枚举Name:In.Out,或者干脆显示为Description:出库.入库. 获取枚举Name其实很简单: return Enum.GetName(typeof(InOrOut)

RTL基本知识:使用枚举类型表示状态机进入死循环

在定义状态机中的状态时,除了可以使用宏(define)或者参数(parameter)声明定义外,还可以使用枚举类型,但是如果对于枚举类型使用不正确的话,极易出现编译仿真均没有报错,但是仿真时状态机跳转异常的情况.本文将针对这种情况进行示例说明并给出解决方法. 1  数据类型 在Verilog中所有的变量和线网都是4值数据类型,但在SystemVerilog中,对信号类型和数据类型进行了详细的区分,其中信号类型保持与Verilog一样,主要分为变量和线网类型,但是数据类型分为了2值类型(0和1)和

mybatis扩展之类型处理器(枚举类型处理)

Employee.java(省略getter和setter方法) private Integer id; private String lastName; private String gender; private String email; private EmpStatus empStatus=EmpStatus.LOGOUT; private Department dept; EmpStatus.java package com.gong.mybatis.bean; public enu

枚举类型与Switch

1.枚举类型,就是一个集合,集合内所有的元素都是枚举类型的, 主要是应用在可预计的集合中,(你知道它的值就只有那么几种情况,这时就可以使用枚举类型) 如: //结果一般只有两种,成功与失败 public enum Result{ success,//用逗号分隔 faild } 2.switch 多管道选择 例子: 1 switch (result) 2 { 3 case Result.success: 4 5 //do something 6 break; 7 8 case Result.fai

规范必备:枚举类型

1.这是个啥? 枚举类型在C#或C++,java,VB等一些计算机编程语言中是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中是一种构造数据类型,它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型. 枚举可以根据Integer.Long.Short或Byte中的任意一种数据类型来创建一种新型变量.这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值.该变量可使代码更加清晰,因为它可以描述特定的值. 2.单独建一个类定义枚举类型,代码: p

Spring4 -12 -声明式事务及完整的XML配置文件信息 -声明式事务中的相关属性(tx:advice的标签)

1.编程式事务: 1.1由程序员编程事务控制代码. 1.2OpenSessionInView 就属于编程式事务: session.commit()和rollback() 2.声明式事务: 2.1事务控制代码已经由spring 写好.程序员只需要声明出哪些方法需要进行事务控制和如何进行事务控制. 3.声明式事务都是针对于ServiceImpl 类下方法的. 4.事务管理器基于通知(advice)的. 5.在spring 配置文件中配置声明式事务 完整地XML配置文件信息: <context:pro