初期化するコードが例外をスローする可能性があるvalのセットを初期化する必要があります。例外をスローする可能性のある初期化の値
xとyがtryの範囲外にあるので、これは(明らかに)動作しません。
それは可変変数を使用して問題を解決するのは簡単です:
var x: Whatever = _
var y: Whatever = _
try {
x = ... generate x value ...
y = ... generate y value ...
} catch { ... exception handling ... }
... use x and y ...
しかし、それは正確に非常に良いではありません。
それは例外処理を複製することによって、問題を解決することも簡単です。
val x = try { ... generate x value ... } catch { ... exception handling ... }
val y = try { ... generate y value ... } catch { ... exception handling ... }
... use x and y ...
しかし、それは例外処理を複製すること。
「すばらしい」方法が必要ですが、それは私を逃しています。
初期化中に例外がスローされた場合、遅延ロードは次のアクセス時にその値を再計算する可能性がありますか? – soc