私はスカラーレイジービューで遊んでいます。変換中に例外が発生した場合、処理するのは非常に簡単ではないようです。 は私がしようとラップしようとしたが、運と:レイジービュー変換での例外の処理
var v = (1 to 10).view.map {
case 5 => throw new Exception("foo")
case v => v
}
val w = v.map { w => Try(w) }
w.foreach { x =>
if (x.isFailure)
println("got it")
else
println(x.get)
}
結果:
v: scala.collection.SeqView[Int,Seq[_]] = SeqViewM(...)
w: scala.collection.SeqView[scala.util.Try[Int],Seq[_]] = SeqViewMM(...)
1
2
3
4
java.lang.Exception: foo
at #worksheet#.$anonfun$1.apply$mcII$sp(tt.sc0.tmp:4)
at #worksheet#.$anonfun$1.apply(tt.sc0.tmp:3)
at #worksheet#.$anonfun$1.apply(tt.sc0.tmp:3)
at scala.collection.TraversableViewLike$Mapped$$anonfun$foreach$2.apply(tt.sc0.tmp:165)
at scala.collection.Iterator$class.foreach(tt.sc0.tmp:889)
at scala.collection.AbstractIterator.foreach(tt.sc0.tmp:1332)
at scala.collection.IterableLike$class.foreach(tt.sc0.tmp:68)
at scala.collection.SeqLike$$anon$2.foreach(tt.sc0.tmp:667)
at scala.collection.TraversableViewLike$Mapped$class.foreach(tt.sc0.tmp:164)
at scala.collection.SeqViewLike$$anon$3.foreach(tt.sc0.tmp:193)
at scala.collection.TraversableViewLike$Mapped$class.foreach(tt.sc0.tmp:164)
at scala.collection.SeqViewLike$$anon$3.foreach(tt.sc0.tmp:193)
at #worksheet#.#worksheet#(tt.sc0.tmp:8)
私は何をしないのですか?
ありがとうございました!今すぐ明白に聞こえる... 最後を終了し、私はあなたの最後の提案を実装しました(カスタムイテレータを試してnext())。魅力的な作品 – mathieu