MethodAはMethodBを呼び出し、MethodBはMethodCを呼び出します。
MethodBまたはMethodCには例外処理はありません。ただし、MethodAには例外処理があります。
MethodCでは、例外が発生します。
現在、この例外はMethodAにバブリングされており、適切に処理されます。
これの何が問題になっていますか?
私の考えでは、ある時点で呼び出し元がMethodBまたはMethodCを実行し、それらのメソッドで例外が発生した場合、それらのメソッド内で例外を処理することで得られるものは、本質的にletではなくtry / catch / finallyブロックですそれらは呼び出し先までバブルアップしますか?
例外処理に関するステートメントまたはコンセンサスは、それだけで実行が継続できない場合にスローすることです-例外。わかった。しかし、try / catchブロックを完全にダウンさせるのではなく、チェーンのさらに上で例外をキャッチしてください。
リソースを解放する必要があるときに理解しています。それはまったく別の問題です。
try-catch
ブロックはまったく必要ありません。
Result<T>
型(計算の結果またはエラーのいずれかを格納する型)を実装し、それ以外のスロー関数からそれを返すことだけです。エラーをスタックに伝播するには、すべての戻り値を読み取り、エラーであるかどうかを確認し、エラーがある場合はエラーを返します。