PowerShell默认的顺序执行命令,即使中间某一句命令出错,也会继续向下执行。
但是,我们的业务有时并非如此,我们希望出现异常情况后进行捕获异常,进行记录日志等操作。
和其他编程语言一样,我们可以使用try catch代码块。
???
这好像没区别啊,是的。默认的每个命令都会有一些通用参数。
有个参数是:ErrorAction,就是指定命令在出现错误后的行为,我们可以看到参数值可以使继续、忽略、停止等。
该参数默认值是Continue,也就是发生错误后继续。
我们把参数值修改为Stop,就可以Catch到了
那要是项目中所有的命令都需要有相同的操作,每个命令设置还是有些麻烦,我们可以通过一个全局变量进行设置---ErrorActionPreference。
这样就不必在每个命令中指定了。
如果我们想在Catch块中获取具体的异常信息,可以使用$_变量获取,$_是自动变量,相当于this。在不同的场景下,指向不同的对象。