Node.jsでデータ処理システムを書いています。
データの一部はユーザーが提供するか、外部ソースから取得されるため、
- それらはさまざまな方法で奇形になる可能性があります。
- それらはあいまいになる可能性があります。
- それらは互いに矛盾する可能性があります。
そのような場合、私は通常、それについてユーザーに警告したいと思います。
- システムがインタラクティブモードで使用されている場合(つまり、データがREPLに入力されている場合)、処理を停止し、いくつかのアクションを提案して、ユーザーの決定を待つ必要があります。
- バッチモードで実行されている場合(つまり、データがファイル、Webサービス、または同様のソースから取得されている場合)、この情報を破棄して処理を続行したいと思います。
もちろん、ユーザーに警告する方法もモードによって異なります。
私は、例外がこの種の問題の正しい解決策であると考えました。理由は次のとおりです。
- 不正な形式または矛盾するデータは例外である必要があります。
- このようにして、例外的な動作のコードが通常のフローから視覚的に分離されます。
- 例外をより高いレベルにバブルすることができ、その上でそれをどうするかを正確に決定できます。
それで私はガイドを探し始め、2つの関連するものを見つけました:
- @RaynosNode.jsによるこのコメントベストプラクティスの例外処理;
- http://codebetter.com/karlseguin/2010/01/25/don-t-use-try-catch/。
前者についてはこれ以上の説明はありません。後でわかりますが、私の場合ではないと思います。
これにどのように対処しますか?私は一般的なアプローチを探していますが、必ずしもプラットフォームや言語に固有ではありません...またはJavaScriptのtry-catchに特に悪いものはありますか?