【发布时间】:2019-10-19 21:33:57
【问题描述】:
我正在尝试在 Powershell 或 .Net 中创建/抛出自己的 System.Exceptions 并捕获那些自定义异常,以在扩展的 try-catch 方法中处理抛出的异常。
下面的例子只是为了展示我真正想要完成的事情。我确实知道,它可以用 case 或 if-else 语句进行不同的处理。
有什么办法吗?
我已经调查过了:
- 创建自己的类(太不方便了)
- Write-Error ... -ErrorAction Stop(想不通)
- 创建相同错误的新错误实例(无法弄清楚如何捕获该实例)
- 尝试使用 $PSItem 捕获之前的错误并再次抛出,修改(多个具有相同错误句柄的捕获或具有错误句柄和参数的捕获在我尝试时不起作用)
非常感谢!
Powershell 脚本示例:
$j = 1
try{
$i = 1+1
if(i -eq 2){
# Throw custom Exception [ERR_eq_2]: "ERR- $i equals 2"
}else{
# Throw custom Exception [ERR_gt_3]: "ERR- $i doesn't equal 2"
}
}catch [ERR_eq_2]{
$i = $i + $j
$i--
if($i -gt 3){
# Throw custom Exception [ERR_gt_3]: "ERR- $i greater than 3"
}else{
# Do smth then continue
}
}catch [ERR_gt_3]{
Write-Output 'Meow'
#... And so on It's Customized
}catch ...
【问题讨论】:
标签: .net powershell exception try-catch