在sping框架里定义我们想要的异常类,不能继承Exception,要继承RuntimeException,原因在于spring框架只对抛出的异常是RuntimeException,才会进行事务回滚,如果抛出的异常是Exception,是不会事务回滚的。比如以下写法:

在业务层中的用法:

枚举的定义:

捕获异常的类: