私たちのプロジェクトはやや大きくなりつつあり、先日、関数に簡単なエラーメッセージを追加しようとしたときに、この問題が発生しました。
def create_report(id):
report = new_report(id)
if not report:
raise api_error('Could not find report with id %d' % (id,))
...
問題? id
文字列であり、数値としてフォーマットしようとするとクラッシュしました。私は関数の元の作者ではなく、それid
が数字であると誤って想定していました。代わりに、文字列であると想定されています。おっと。
これが強く型付けされた言語である場合、コンパイラからすぐにエラーが発生します。この種のことを行うための最良の方法は何ですか?すべてのパラメーターのタイプをチェックする必要がありますか(多くのレッグワークのように見えます)、それともすべてをtry:
ブロックに入れる必要がありますか?たぶん、すべての関数にそのパラメーターを説明するコメントを書く必要がありますか?それとも、私は単にもっとよく知っているはずだったのでしょうか?