関数が失敗するのが正常な場合、たとえば、データベースでレコードが見つからない場合や、値が存在しない可能性があることを示すその他の状況が発生した場合、このケースを処理するために例外を使用することをお勧めしますか?
疑似コードの例:
function retrieve(foo):
results = db.query("SELECT * FROM bar WHERE foo="+foo)
if not results:
throw Exception("no results")
return results[0]
function main:
try:
record = retrieve(42)
except:
print "no record with 42"
.... will create the record and continue
else:
print "record found: "+record
.... will use the existing record and continue
別の解決策として、この例外を起動する代わりに null 値を返すことがあります。アンチパターンである可能性が最も高いのはどれですか? 例外を使用する方が適切な場合とそうでない場合はどれですか?