国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > PowerShell > 正文

PowerShell腳本trap語(yǔ)句捕獲異常寫法實(shí)例

2020-05-30 20:11:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

先看一個(gè)腳本文件:3.three.test.ps1
代碼如下:
Get-FanBingbing #命令不存在

然后這樣捕獲:
代碼如下:
trap [exception]
{
 '在trap中捕獲到腳本異常'
 $_.Exception.Message
 continue
}
./3.three.test.ps1
異常捕獲成功,輸出:
代碼如下:在trap中捕獲到腳本異常
The term 'Get-FanBingbing' is not recognized as the name of a cmdlet
接下來(lái)我把3.three.test.ps1腳本文件的內(nèi)容改成:
代碼如下:dir D:/ShenMaDoushiFuYun #目錄不存在
再運(yùn)行,這時(shí)沒(méi)有捕獲到異常,錯(cuò)誤為:dir : Cannot find path ‘D:/ShenMaDoushiFuYun' because it does not exist.

于是我想是不是因?yàn)榻K止錯(cuò)誤與非終止錯(cuò)誤的區(qū)別:所以還寫了try catch捕獲語(yǔ)句,雙管齊下:
代碼如下:
trap [exception]
{
 '在trap中捕獲到腳本異常'
 $_.Exception.Message
 continue
}
try{
./3.three.test.ps1
}
catch{
 '在catch中捕獲到腳本異常'
 $_.Exception.Message
}
異常仍舊:dir : Cannot find path ‘D:/ShenMaDoushiFuYun' because it does not exist.

看來(lái)問(wèn)題不在這里。事實(shí)上是ErrorActionReference的問(wèn)題,這樣改就OK啦:
代碼如下:
trap [exception]
{
 '在trap中捕獲到腳本異常'
 $_.Exception.Message
 continue
}
$ErrorActionPreference='stop'
./3.three.test.ps1
輸出為:
代碼如下:
在trap中捕獲到腳本異常
Cannot find path 'D:/ShenMaDoushiFuYun' because it does not exist.
簡(jiǎn)單分析:
像Get-FanBingbing這樣的異常,是因?yàn)槊畈淮嬖冢_切來(lái)講屬于語(yǔ)法錯(cuò)誤,級(jí)別比較高被trap到了。但是像目錄找不到這樣的異常,相對(duì)而言級(jí)別比較低,默認(rèn)不能捕獲到,除非顯示指定ErrorAction為stop。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 台州市| 吴旗县| 西华县| 桐梓县| 承德县| 夏邑县| 远安县| 界首市| 渭南市| 城市| 铜陵市| 兰考县| 卫辉市| 全州县| 怀集县| 壶关县| 高青县| 滕州市| 凉山| 荥经县| 巴林右旗| 林周县| 绩溪县| 长治市| 綦江县| 东台市| 宜良县| 辽源市| 射阳县| 文水县| 霍邱县| 安义县| 苍山县| 丰镇市| 水富县| 屯留县| 通山县| 卓尼县| 上栗县| 福安市| 土默特右旗|