インターセプトを使用して例外キャッチ コードを Java から Scala に変換するにはどうすればよいですか?
http://www.scalatest.org/getting_started_with_fun_suiteを読むと、例外をキャッチするときにインターセプトを使用することが推奨されるようです。以下の例外キャッチ コードでは、 assert 内の型をチェックするために Exception 型にアクセスする必要があります。
catch {
case me : MyException => {
assert(me.getDetail.getClass() === classOf[GenericException]);
}
}
これは、次のコードがコンパイラ エラーを引き起こすため、intercept を使用することはできないようです:「前方参照が値例外の定義を超えています」
これは、scala catch ブロックに変換されたものです。
val exception = intercept[MyException] {
assert(exception.getDetail.getClass() === classOf[GenericException]);
}
エラーはオンラインで発生します
assert(exception.getDetail.getClass() === classOf[GenericException]);