Imooc·Java高并发秒杀API(枚举与异常处理)
来源:互联网 发布:delphi 车牌识别算法 编辑:程序博客网 时间:2024/05/21 23:00
Imooc·Java高并发秒杀API(枚举与异常处理)
一、项目中一共用到一个枚举(SeckillStatEnum)
public enum SeckillStatEnum {SUCCESS(1,"秒杀成功"), END(0,"秒杀结束"),REPEAT_KILL(-1,"重复秒杀"),INNER_ERROR(-2,"系统异常"),DATE_REWRITE(-3,"数据篡改");private int state;private String stateInfo;SeckillStatEnum(int state, String stateInfo) {this.state = state;this.stateInfo = stateInfo;}public int getState() {return state;}public String getStateInfo() {return stateInfo;}public static SeckillStatEnum statOf(int index){for(SeckillStatEnum state : values())if(state.getState() == index) return state;return null;}}
二、和三个自定义异常(RepeatKillException、SeckillCloseException、SeckillException)并在ServiceImpl中将编译器异常转换为运行期异常
public SeckillExecution executeSeckill(long seckillId, long userPhone,String md5) throws SeckillException, SeckillCloseException,RepeatKillException {if(md5 == null || !md5.equals(getMD5(seckillId)))throw new SeckillException("seckill date rewrite");Date nowTime = new Date();int updateCount = seckillDao.reduceNumber(seckillId, nowTime);try {if(updateCount <= 0) throw new SeckillCloseException("seckill is close");else {int insertCount = successKilledDao.insertSuccessKilled(seckillId, userPhone);if(insertCount <= 0) throw new RepeatKillException("seckill repeated");else {SuccessKilled successKilled = successKilledDao.queryByIdWithSeckill(seckillId, userPhone);//return new SeckillExecution(seckillId, 1, "秒杀成功", successKilled);return new SeckillExecution(seckillId, SeckillStatEnum.SUCCESS, successKilled);}}} catch (SeckillCloseException e1) {throw e1;} catch (RepeatKillException e2) {throw e2;} catch (Exception e) {//e.printStackTrace();logger.error(e.getMessage());//将所有编译器异常转换为运行期异常throw new SeckillException("seckill inner error :" + e.getMessage());}}
0 0
- Imooc·Java高并发秒杀API(枚举与异常处理)
- Imooc·Java高并发秒杀API(三)
- Imooc·Java高并发秒杀API(Spring-test与junit)
- Imooc·Java高并发秒杀API(数据库sql)
- Imooc·Java高并发秒杀API(JavaScript模块化)
- #Java 高并发秒杀API 笔记
- Java高并发秒杀API
- Java高并发秒杀系统API
- Java高并发秒杀API之高并发优化(四)
- 一、高并发秒杀API简介与业务分析
- 高并发秒杀API之业务分析与DAO
- Java高并发秒杀API之业务分析与DAO层
- Java高并发秒杀API之业务分析与DAO层
- Java高并发秒杀API(一)之业务分析与DAO层
- imooc java学习之异常与异常处理作业
- JAVA高并发秒杀API项目的学习笔记
- Java高并发秒杀API(二)之Service层
- Java高并发秒杀API(三)之Web层
- PHP中插件机制的一种实现方案
- solr的多条件组合查询和solr的范围查询
- Hibernate(基础一) Hibernate3的动态条件查询DetachedCriteria用法
- Android6.0权限组
- n个元素的所有子集(递归+非递归 +不去重)
- Imooc·Java高并发秒杀API(枚举与异常处理)
- R语言实战:机器学习与数据分析源代码2
- 异常Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- bootstrap-table 显示行号,分页有效
- Android中BindService方式使用的例子
- c++,父类引用指向子类对象,虚函数
- java小知识
- 计算机图形学(二)输出图元_20_章节总结_程序展示_饼图
- 第六章 最短路径