2
我有一个Future [MyType],它是通过api调用通过线路产生的。如果api调用失败,因为发送了错误的数据,它只会抛出一个异常(不是很有帮助,但我可以做的没有什么)将Future [MyType]转换为Future [Option [MyType]]
所以我想用try/catch检查并返回Future [Option [MyType ]]是这样的:
def myfunc(name:String):Future[Option[MyType]] = {
try {
val d:Future[MyType] = apiCall(name) //returns a Future[MyType]
???? Convert d into future(Some(MyType))
} catch {
future(None)
}
}
感谢您抽空看看
伟大的建议,我不知道错误发生在哪里..我会进一步检查。感谢您抽出时间 – saintlyRook
不要抓住'Throwable',而是抓住'NonFatal'。另外,如果apiCall返回一个Future,我不会期望它抛出任何东西,而是返回失败的Future。 – Calavoow