大規模なソフトウェアでソースコード行あたりのキャッチステートメント数はどれくらいですか?コード行に対するキャッチステートメントの割合が良い
たとえば、C#で書かれたソフトウェアの1つでは、Visual Studioは「catch」という単語を含む約350行を表示し、clocは約160k SLOC、30kコメント行、15k空白行があると報告します。 160k/350は、catchステートメントごとに約467行のコードです。
しかし、私たちは標準的なC#の書式設定を自分の行に入れているので、160kからどれくらいの行が単括弧であるか知っているので、160kはいくつかのファイルをツリーはアプリケーションにコンパイルされなくなりました。私は、「有用な」比率が400 LOCあたり1つのキャッチに近いと推測するかもしれません。
少なくとも私の驚きではないが、私たちは空のキャッチブロックでキャッチされていた半クリティカルな例外を見逃していたので、今ではコードベースに行き、少なくとも例外をデバッグコンソール一時的な措置として、または捕らえられた例外についてより具体的になるようにすることができる。もちろん、これはアプリケーション全体のキャッチ数を増やしますが、それは「許容」ゾーンに近いところに私たちを連れてきますか?私は467 LOCあたり1つのキャッチが良い、ちょうど大丈夫、または恐ろしいかどうか分かりません。
私はよく を認識しています。なぜなら、は空のキャッチブロックを使用しないことです。他の/以前のメンテナーは怠け者です。また、この製品の次期リリースはタイムクリティカルなので、現在は300個ものキャッチコピーをすべて修正し、ソフトウェアの適切な動作を確認する時間はありません(もちろん、それを簡単にするためのテスト:/)
試し釣りがどのくらいの頻度で表示されるべきかについて「嫌な気持ち」があるかどうかを探していました。文脈に敏感であると答えたカップルの回答がありますが、それは私が疑いの種だが確かではないものです。
空のtryブロック自体は悪い考えではありません(つまり、正しく使用できます)。主なプログラマーが恐ろしいところで彼らを虐待するだけです。本当にエラーを記録し、ユーザーからのフィードバックを提供すべきです。 – Noldorin
これに基づいて、空のtry-catchブロックを扱う別の質問を見てみましょう。[なぜ空のcatchブロックが悪い考えをブロックするのですか?](http://stackoverflow.com/questions/1234343/why-are-empty-catch-blocks-悪いアイデア)。 – Lode
Noldorinには同意せず、空のキャッチブロックは常に間違っていると提案します。あなたが本当に完全に無視したい特定のタイプの問題がある場合、何とかキャッチを修飾して、あなたが予期しているエラーのタイプを無視するだけです。カップルの方法:<< catch(VerySpecificExceptionType ex){} >>または<< catch(Exception ex){if(ex.Message!= "私が期待するもの")throw。 } >> 私は空のキャッチブロックが大丈夫かもしれない反例には開いていますが、私は懐疑的です:) – pettys