Nodeでエラーをスローすることは悪い習慣であり、CommonJSのコールバック構文を介して手動でエラーを処理する必要があると多くの人から聞いています。
somethingThatPassesAnError( function(err, value) {
if (err) console.log("ERROR: " + err);
});
それでも、複数の単体テストフレームワーク(Mocha、Should.js、Gently)で、何かが起こったときにエラーが発生するように思われることがわかりました。throw
つまり、確かに、変数の同等性をチェックし、エラー変数でnull以外をチェックするようにテストを設計できますが、Ryan Dahl自身の言葉では、「正しいことを簡単に実行できるようにフレームワークを作成する必要があります。間違ったことをするのは難しい」
では、何が得られるのでしょうか?その慣習が存在する理由を誰かが説明できますか?require()
モジュールが見つからなかった場合のように、致命的な例外をスローし始める必要がありますか?