0
我有以下的現有方法:扔Throwable的fromTryCatch - 和調整方法的類型正確
def test: \/[Throwable, Person] = {
\/.fromTryCatch {
//existing logic has potential to throw exception (from calls like .toInt) etc
//now via following for comprehension want to combine Throwable with return type \/[Throwable,Person]
for {
p <- q.firstOption.\/>(new Throwable("can't find record for person with id = " + id))
} yield p
}
}
將會產生以下錯誤:
type mismatch; found : scalaz.\/[Throwable,Person] (which expands to) scalaz.\/[Throwable,Person] required:Person
我怎麼排列的返回值類型理解類型爲def test
?
正如原文所述'for'comprehension並不是我在'\ /。fromTryCatch'中唯一的事情,是我現在添加的一個新塊。 '\ /。fromTryCatch'中的現有邏輯具有可以拋出異常的其他代碼(一個例子是它調用了'.toInt')(這只是一個例子,但是在原始'\ /。fromTryCatch中還有其他潛在的代碼塊''有可能拋出異常,所以它不僅僅限於'for'的理解 – 2014-09-22 16:27:30
@VikasPandya,請參閱我的編輯 – 2014-09-22 16:45:39
你可能包含你正在使用的導入嗎?我正在學習scalaz並且跑過這個''''' 「這是從哪裏來的(不能真的是google的),謝謝。 – Jaap 2015-02-18 21:51:55