如何在PowerShell中隐藏空白单元格引发的HRESULT:0x800A03EC异常
针对特定语句屏蔽错误的解决方案
以下几种方法可以只屏蔽目标语句的指定错误,不会全局影响错误处理:
使用
try/catch捕获特定COM错误
精准捕获0x800A03EC对应的COM异常,仅处理该错误,其他错误正常抛出:try { $AAA = ($BBB.Columns.Item($CCC.Plan_Name).Find($DDD.Entity)).Row } catch [System.Runtime.InteropServices.COMException] { # 0x800A03EC的十进制等价为-2146827284 if ($_.Exception.ErrorCode -eq -2146827284) { # 可选:给$AAA设置默认值,比如空值 $AAA = $null } else { # 重新抛出其他类型的COM错误 throw } }使用错误输出重定向
2>$null
最简单的方式,直接将当前语句的错误输出定向到null,仅屏蔽该语句的所有错误:$AAA = ($BBB.Columns.Item($CCC.Plan_Name).Find($DDD.Entity)).Row 2>$null通过脚本块结合
-ErrorAction参数
把目标代码包裹在脚本块中执行,通过-ErrorAction SilentlyContinue仅屏蔽该脚本块内的错误:$AAA = & { ($BBB.Columns.Item($CCC.Plan_Name).Find($DDD.Entity)).Row } -ErrorAction SilentlyContinue
内容的提问来源于stack exchange,提问作者AdvertisingFree
相关产品推荐
相关产品推荐

