私の経験不足を明らかにするための質問があります。私はDoSomething()メソッドを持っています。これは、うまく処理できない場合に例外をスローします。失敗した場合は、精度の低いメソッドDoSomethingAbout()を数回試して、十分に適切な解決策が見つかることを願っています。これも失敗した場合は、最終的にDoSomethingInaccurateButGuaranteedToWork()を呼び出します。3 つすべてが、このオブジェクトに属するメソッドです。
2 つの質問: まず、この (確かに醜い) パターンは受け入れられるでしょうか、それとももっとエレガントな方法がありますか?
第二に、例外をスローする可能性があることを考えると、DoSomethingAbout()を呼び出した回数を追跡する最良の方法は何ですか? 私は現在、オブジェクトに変数 iNoOfAttempts を保持しており、try ブロックをネストしています...これは恐ろしいことであり、恥ずかしいことです。