当DomainClassConverter找不到具有@PathVariable的实体时抛出异常

时间:2017-01-10 13:40:52

标签: spring-mvc spring-data

例如:

@RestController
@RequestMapping("/item")
class ItemController {

    @RequestMapping(value = "/{id}", method = GET)
    Item get(@PathVariable("id") Item item) {
        return item;
    }
}

每当DomainClassConverter在某些记录不存在时返回null的情况下,我都不想处理。我想自动抛出一个异常。有可能吗?

1 个答案:

答案 0 :(得分:0)

是,检查是否找不到任何项目抛出自定义异常。

class ItemNotFoundException extends Exception{  
       ItemNotFoundException(String s){  
      super(s);  
     }  
  } 

然后像这样更改代码并根据需要处理异常。

@RestController
@RequestMapping("/item")
class ItemController {

    @RequestMapping(value = "/{id}", method = GET)
    Item get(@PathVariable("id") Item item) {
        if(item ==null){
            throw new ItemNotFoundException("No item found.");  
        }else{
            return item;
        }
    }
}