成功または失敗が唯一の懸念事項である場合にブール値を返す
多くの場合、複数の場所で使用されているメソッドからブール値を返すことで、そのメソッドに関するすべてのロジックを1か所に収めています。(内部)呼び出しメソッドが知る必要があるのは、操作が成功したかどうかだけです。 私はPythonを使用していますが、質問は必ずしもその言語に固有のものではありません。考えられる選択肢は2つだけです 例外は発生しますが、状況は例外ではありません。関数が呼び出されるすべての場所でその例外をキャッチすることを忘れないでください 私がやっているようにブール値を返します。 これは、私が話していることを示す本当に簡単な例です。 import os class DoSomething(object): def remove_file(self, filename): try: os.remove(filename) except OSError: return False return True def process_file(self, filename): do_something() if remove_file(filename): do_something_else() 機能的ではありますが、私はこのようなやり方を本当に嫌いです。「臭い」がし、場合によっては入れ子にされたifが大量に発生することがあります。しかし、もっと簡単な方法は考えられません。 os.path.exists(filename)削除を試みる前に、よりLBYLの哲学に目を向けて使用することもできますが、その間にファイルがロックされないという保証はありません(可能性は低いですが可能です)し、削除が成功したかどうかを判断する必要があります。 これは「受け入れられる」設計ですか。そうでない場合、これを設計するより良い方法は何でしょうか?