在9-5章controller取消订单中,为了测试错误页面,需要传入一个错误的orderId,先使用orderService查询,然后捕捉异常,
来源:9-5 卖家订单-controller-取消订单
悟空不悟空
2018-04-14
但是我的spring boot版本是2.0的,所以orderRepository需要在findById()后面加上get()方法,此时这段代码是这样OrderMaster orderMaster = orderMasterRepository.findById(orderId).get();
所以在传入错误的orderId()后,并不会进入if(orderMaster==null){throw new SellException(ResultEnum.ORDER_NOT_EXIST);
}
即没有抛出SellException,所以controller不会捕获这个异常。而是在get()方法这里出错。
写回答
3回答
-
廖师兄
2018-04-16
findById返回是optional对象,不能直接在后面加get。保持版本一致,先把课程学完。
332019-01-16 -
杨勤_cd
2018-12-25
findById(id).orelse(null)即可进入错误分支
00 -
addictedleo
2018-12-22
我用的2.1.1也遇到同样的问题了,不过我把
OrderMaster orderMaster=orderMasterRepository.findById(orderId);
改成下面这样就OK了:
Optional<OrderMaster> orderMaster=orderMasterRepository.findById(orderId);
012018-12-22
相似问题