底线在前面
我正在寻找一种方法来验证 powershell (v1) 命令行参数,而不会将异常传播回命令行。
细节
我有一个当前用于验证命令行参数param
的powershell 脚本:[ValidateNotNullOrEmpty]
param(
[string]
[ValidateNotNullOrEmpty()]$domain = $(throw "Domain (-d) param required.")
)
我们正在改变错误处理的范例,我们不再希望将异常传递回命令行,而是提供自定义错误消息。由于该param
块不能包装在 try catch 块中,因此我采用了以下方法:
param(
[string]$domain = $("")
)
Try{
if($domain -like $("")){
throw "Domain (-d) param required."
}
...
}Catch{
#output error message
}
我担心的是,我们绕过了所有可用的内置验证 using param
。我的新技术是一个合理的解决方案吗?在脚本中封装异常时,是否有更好的方法来验证命令行参数?我非常有兴趣了解 PowerShell 专业人员如何处理这种情况。
任何意见,将不胜感激。