2

私たちの(かなり大きな)コードベースには、これらの構造がいくつかあります。

try {
    DoSomething();
}
catch (Exception e) {
    CleanUp();
    throw new MoreSpecificException();
}

そして、ほとんどの場合、InnerException を設定して新しい例外を確実にスローするようにしたいと考えています。

InnerException を設定せずに新しい例外のスローを検出する標準の FxCop ルールはありますか? 私の調査 (グーグル) によると、そのようなルールは存在しません。

そうでない場合、そのようなルールをどのように作成できますか? (カスタム FxCop ルールを作成したことはありません)。

Gendarme toolも調べましたが、必要なものが見つかりませんでした。

FxCop ルールは、ところで、SonarQube によって実行されます。

4

1 に答える 1

1

はい、これは FxCop で可能です。カスタム ルールを作成するためのガイドはhttp://www.binarycoder.net/fxcop/index.htmlです。

FWIW、代わりに「例外を食べない」ルールを作成し、元の例外を内部例外として新しい例外をスローすることをお勧めします。これは、ルールによって認識される「食べない」パターンの 1 つです。これは、「例外をスローするたびに内部例外ルールが必要である」よりも一般的に有用であり、後者のルールで潜在的に多数の誤検出を回避します。

于 2015-12-04T18:30:31.167 に答える