严重性级别:警告
默认状态:始终启用
Description
该规则用于检测空 catch 方块。 空的捕获块存在问题,因为它们无声地抑制异常,无需错误处理、日志记录或恢复操作。 这会掩盖漏洞,使排查变得困难。 异常处理时应始终通过 log Write-Error 错误、 throw 传播错误或在捕获块内提供适当的恢复逻辑来明确处理异常。
Example
非符合性
try
{
1/0
}
catch [DivideByZeroException]
{
}
合规的
try
{
1/0
}
catch [DivideByZeroException]
{
Write-Error 'DivideByZeroException'
}
try
{
1/0
}
catch [DivideByZeroException]
{
throw 'DivideByZeroException'
}
配置规则
这个规则始终是启用的,不能配置。 请采用以下方法之一以避免使用此规则:
- 创建一个自定义规则配置文件,只包含你想要的规则,或者排除你不想要的规则。
- 在代码中添加相应的规则抑制属性,以抑制特定代码块的规则。 更多信息请参见使用 PSScriptAnalyzer 中的“抑制规则”部分。