Scala は未定義/null 値を回避しようとします。try
ただし、失敗した場合の戻り値を指定し、式a
全体で初期化することで問題を解決できます。try
private val a: SomeClass =
try {
someThing // this statement may throw an exception
} catch {
case ex: Exception => {
ex.printStackTrace()
someDefault
}
}
更新:Try
Scala では、 fromを使用する方がおそらくより慣用的scala.util
です。
val x : Int =
Try({
someThing
}).recoverWith({
// Just log the exception and keep it as a failure.
case (ex: Throwable) => ex.printStackTrace; Failure(ex);
}).getOrElse(1);
Try
さまざまな方法で例外で失敗する可能性のある計算を作成できます。たとえば、タイプの計算が 2 つある場合は、次のようにTry
呼び出すことができます。
thing1.orElse(thing2).getOrElse(someDefault)
これが実行thing1
され、成功した場合は結果が返されます。失敗した場合は、 に進みthing2
ます。それも失敗した場合は、 を返しますsomeDefault
。recover
またはを使用して、部分関数を使用して一部の例外から回復することもできrecoverWith
ます (これらの部分関数を再利用する可能性もあります)。