java - 调用restTemplate.getForObject时如何处理未找到数据
问题描述
我正在调用restTemplate.getForObject
从 Mongo DB 中检索某个值。如果在数据库中找不到预期的数据,如何处理异常?
Object[] mongodata = restTemplate.getForObject(resulturl,Object[].class,keyval);
list = Arrays.asList(mongodata);
其中keyval是一个包含json的字符串,resulturl是调用mongo的url
解决方案
基本上,您有两个主要选择:
- 只需将调用包装
RestTemplate
在一个try-catch
块中并处理错误(如果 404 not found 响应,它将是HttpClientErrorException
)。就像是
try {
Object[] mongodata = restTemplate.getForObject(resulturl,Object[].class,keyval);
list = Arrays.asList(mongodata);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
// Do something
} else {
throw e;
}
}
- 实施一个
ResponseErrorHandler
.
有关示例,请参见Baeldung 上的这篇文章。
推荐阅读
- c# - 有没有办法区分连续约会的单次出现是第一次、中间还是最后一次?
- arrays - 使用 sizeof 将字符附加到字符串形式用户的末尾
- mysql - Laravel Eloquant 删除子表行 - onDelete('cascade') 不删除子表行
- python - 如何在 django rest 框架中过滤 ManyToManyField
- amazon-web-services - 使用 IAM 角色从脚本访问 S3 存储桶
- amazon-s3 - 如何使用 C#(ASP.Net Core)将文件从 razor 上传到 s3 存储桶
- python - How do i import single object from django to a html template
- mysql - 在 MariaDB/InnoDB 中运行 ADD COLUMN AFTER 是否有任何风险?
- python - scipy.interpolate.interp2d:我真的有太多数据点吗?
- mongodb - Mongo如何排除嵌套数组中的嵌套_id