【发布时间】:2020-04-29 12:11:50
【问题描述】:
我想了解如何处理以下内容,
我有一个微服务需要获取产品:
@RequestMapping("/details-produit/{id}")
public String ficheProduit(@PathVariable int id, Model model){
ResponseEntity<ProductBean> produit = ProduitsProxy.recupererUnProduit(id);
model.addAttribute("produit", produit.getBody());
return "FicheProduit";
}
我的伪装类:
@GetMapping( value = "/Produits/{id}")
ResponseEntity<ProductBean> recupererUnProduit(@PathVariable("id") int id);
还有我的 CustomErrorDecoder:
@Override
public Exception decode(String invoqueur, Response reponse) {
if (reponse.status() == 400) {
return new ProductBadRequestException("Requête incorrecte ");
} else if (reponse.status() == 404) {
return new ProductNotFoundException("Produit non trouvé ");
}
return defaultErrorDecoder.decode(invoqueur, reponse);
}
我想了解的是,如何回到调用者方法做这样的事情:
@RequestMapping("/details-produit/{id}")
public String ficheProduit(@PathVariable int id, Model model){
ResponseEntity<ProductBean> productBeanResponseEntity = ProduitsProxy.recupererUnProduit(id);
if (productBeanResponseEntity.getStatusCode() == HttpStatus.OK) {
model.addAttribute("produit", productBeanResponseEntity.getBody());
} else {
**// Do something here**
}
return "FicheProduit";
}
目前,我发现的唯一方法就是这样做:
try {
ResponseEntity<ProductBean> produit = ProduitsProxy.recupererUnProduit(id);
model.addAttribute("produit", produit.getBody());
} catch (ProductNotFoundException e) {
log.error(e.getMessage());
}
但我想处理一些错误并继续调用者方法的过程。
我该如何处理?
谢谢!
【问题讨论】:
标签: java spring spring-boot spring-cloud-feign java-ee-8