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