课程
/后端开发
/Java
/Java高并发秒杀API之Service层
我觉得既然方法上都已经向上抛出异常了,为什么还要在方法里再捕获异常。
2018-01-16
源自:Java高并发秒杀API之Service层 1-4
正在回答
楼上说的很对。老师对于异常处理有以下三步:
1.try catch 将所有的已知的未知的异常全部捕获到后在最后一个catch里处理转变为spring认识的运行期异常再在方法里抛出,这样spring才会进行事务回滚
2.由于所有异常都被最后一个catch转化为同一种异常:SeckillException,这样就难以区分到底是哪些业务异常,所以在最后一个catch前加了两个catch把相对应的每一种异常提前抛出
方法上抛出异常是为了让调用者知道 该方法大概会抛出哪些异常,方法里捕获异常是为了捕获哪些 数据库插入、修改、连接失败这些操作的数据库异常。
举报
Java实现高并发秒杀API,介绍秒杀业务Service层的设计和实现
3 回答请问:最后的代码,异常都捕获了,为何会触发回滚?
2 回答输出异常的问题
1 回答秒杀接口的返回值和异常使用有些疑问?
3 回答TooManyResultsException异常
1 回答关于异常有没有更好的解决办法