我有一个Strings 列表,表示我想要map的对象列表中的序列化数据.我使用以下代码:
strings.map { gson.fromJson(it, Model::class.java) }
// .doOtherStuff
Run Code Online (Sandbox Code Playgroud)
但是,有时会出现解析错误并且流停止,我希望能够恢复列表直到失败.例如,如果错误发生在第7项,我想doOtherStuff获得成功处理的6个项目.
最常用的方法是什么?我可以过滤列表以查看解析是否会成功,但是执行两次这是一项昂贵的操作.
Jay*_*ard 10
您可以将异常视为null然后过滤空值.
val models = modelsInJson.mapNotNull { json ->
try {
gson.fromJson(json, Model::class.java)
} catch (ex: WhateverException) {
// TODO: logging here?
null
}
}
Run Code Online (Sandbox Code Playgroud)
WhateverException对于要处理的错误类型,请更换正确的错误,其他错误仍然可以停止处理.
| 归档时间: |
|
| 查看次数: |
1502 次 |
| 最近记录: |