本文概述
- try{… … ..}
- catch{… ..}
- finally{… … }
终止错误是那些使语句无法运行的错误。当PowerShell无法以某种方式处理终止错误时, 它还将停止使用当前管道运行脚本或函数。在其他语言(例如C)中, 这些错误称为异常。
try{… … ..}try块是脚本的一部分, 你希望PowerShell监视错误。当该块中发生错误时, 首先将其存储在自动变量$ Error中。之后, PowerShell搜索Catch块来处理它。
如果Try块没有匹配的Catch块, 则PowerShell将在父作用域中搜索适当的Trap或Catch块。
try块的语法
下面的框显示了try块的语法:
try
{
Statement-1
Statement-2
Statement-N
}
Try语句必须至少具有一个catch或一个finally块。在上面的语法中, Try关键字后括号内是单个或多个语句。
catch{… ..}Catch块是脚本中处理Try块生成的错误的部分。我们可以定义Catch块要处理的错误类型。错误类型是Microsoft .NET Framework的例外。一个Try块可以具有多个catch块, 用于不同类型的错误。除了Catch块, 你还可以使用Trap块来处理错误。
Catch块的语法
以下框显示了catch块的语法:
catch [ [<
error type>
] [', ' <
error type>
] *]
{
Statement-1
Statement-2
Statement-N
}
错误类型显示在括号中。最外面的括号表明该元素是可选的。在以上语法中, catch关键字后跟一个可选的错误类型说明列表和一个语句列表。当发现任何catch块时, 将执行catch块中的语句。
finally{… … }“ 最终” 块是脚本的一部分, 用于释放脚本不再需要的资源。
下面的框显示了finally块的语法:
finally
{
Statement-1
Statement-2
Statement-N
}
在” 最终” 块之后是单个或多个语句, 这些语句包含在每次执行脚本时都会执行的大括号中。
例子
示例1:以下示例仅将一个Catch块与Try块一起使用:
Try
{
Get-ChildItem
}
catch
{
"Error in a Try block."
}
在此示例中, 该命令在Try块中是正确的, 因此没有错误, 并显示以下输出:
Directory: C:\
ModeLastWriteTimeLength Name
---------------------------
d-----23-02-201913:14found.000
d-----28-12-201719:44Intel
d-----15-09-201813:03PerfLogs
d-----09-10-201911:20powershell
d-r---15-11-201912:01Program Files
d-r---15-11-201912:23Program Files (x86)
d-----22-08-201915:20Temp
d-----13-07-201909:55TURBOC3
d-r---29-09-201916:20Users
d-----15-11-201918:06Windows
d-----29-01-201918:26xampp
d-----05-05-201912:53xampplite
-a----20-11-201904:264684056 aow_drv.log
示例2:以下示例还仅将一个Catch块与Try块一起使用:
Try
{
Get-Child
}
catch
{
"Error in a Try block."
}
【PowerShell try-catch-finally语句】在此示例中, Try块中的命令错误, 因此Try块中存在错误。因此, 我们从catch块获取输出:
Error in a Try block.
推荐阅读
- PowerShell Test-Path路径例子
- PowerShell switch语句
- PowerShell以管理员身份运行
- PowerShell字符串如何使用()
- PowerShell Start-Process启动进程
- PowerShell拆分和合并运算符
- PowerShell set-location| PowerShell更改目录
- PowerShell Set-Content设置内容| PowerShell写入文件
- PowerShell set-item实例