java在方法中处理RuntimeException的更好方法是什么?
我听说处理运行时异常并不总是一个好的实践。我实现了一个方法,该方法将产品评级作为参数,如果当前产品对象具有此评级,它将返回一个ProductDTO对象。我发现使方法按预期工作的唯一方法是使用运行时异常。但根据Joshua Bloch的说法,在控制流中使用异常是一个非常糟糕的主意
有没有办法改进方法的逻辑
public ProductDTO findByRating(int productRating) {
ProductDTO productDTO = new ProductDTO();
if (productRating == this.avgRating()) {
productDTO.setProductName(productName);
productDTO.setProductsLeftForSale(productsLeftForSale());
productDTO.setAvgRating(avgRating());
productDTO.setTotalVotes(reviews.size());
return productDTO;
} else {
throw new RuntimeException(String.format("No Product found with the rating: %s", productRating));
}
}
List<ProductDTO> productDTOList = new ArrayList<>();
int rating = 5;
for (BaseProduct product : products) {
try {
ProductDTO productDTO = product.findByRating(rating);
if (productDTO != null) {
productDTOList.add(productDTO);
}
} catch (RuntimeException e) {
e.printStackTrace();
}
}
# 1 楼答案
也许看起来好一点: