AvoidUsingEmptyCatchBlock

重症度レベル:警告

デフォルト状態:常に有効

Description

このルールは空の catch ブロックを検出します。 空のキャッチブロックは、エラー処理、ログ記録、復旧アクションなしに例外を静かに抑制するため問題があります。 これによりバグが隠れてしまい、トラブルシューティングが難しくなります。 例外を明示的に扱うには、 Write-Error を使ってエラーをログし、 throw を伝播させ、キャッチブロック内で適切な回復ロジックを提供してください。

例

非準拠

try
{
    1/0
}
catch [DivideByZeroException]
{
}

対応

try
{
    1/0
}
catch [DivideByZeroException]
{
    Write-Error 'DivideByZeroException'
}

try
{
    1/0
}
catch [DivideByZeroException]
{
    throw 'DivideByZeroException'
}

ルールの設定

このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。

  • 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
  • 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。