• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >PowerShell > PowerShell脚本trap语句捕获异常写法实例

PowerShell脚本trap语句捕获异常写法实例

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了powershell脚本,powershell脚本下载,powershell脚本代码,powershell执行脚本,powershell 运行脚本等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

先看一个脚本文件:3.three.test.ps1
Get-FanBingbing #命令不存在
</div>
然后这样捕获:
trap [exception]
{
 '在trap中捕获到脚本异常'
 $_.Exception.Message
 continue
}
.\3.three.test.ps1</div>
异常捕获成功,输出:
The term 'Get-FanBingbing' is not recognized as the name of a cmdlet</div>
接下来我把3.three.test.ps1脚本文件的内容改成:
再运行,这时没有捕获到异常,错误为:dir : Cannot find path ‘D:\ShenMaDoushiFuYun' because it does not exist.

于是我想是不是因为终止错误与非终止错误的区别:所以还写了try catch捕获语句,双管齐下:
trap [exception]
{
 '在trap中捕获到脚本异常'
 $_.Exception.Message
 continue
}
try{
.\3.three.test.ps1
}
catch{
 '在catch中捕获到脚本异常'
 $_.Exception.Message
}</div>
异常仍旧:dir : Cannot find path ‘D:\ShenMaDoushiFuYun' because it does not exist.

看来问题不在这里。事实上是ErrorActionReference的问题,这样改就OK啦:
trap [exception]
{
 '在trap中捕获到脚本异常'
 $_.Exception.Message
 continue
}
$ErrorActionPreference='stop'
.\3.three.test.ps1</div>
输出为:
在trap中捕获到脚本异常
Cannot find path 'D:\ShenMaDoushiFuYun' because it does not exist.</div>
简单分析:
像Get-FanBingbing这样的异常,是因为命令不存在,确切来讲属于语法错误,级别比较高被trap到了。但是像目录找不到这样的异常,相对而言级别比较低,默认不能捕获到,除非显示指定ErrorAction为stop。

</div>

您可能想查找下面的文章:

  • PowerShell因为在此系统中禁止执行脚本的解决方法
  • PowerShell时间记录脚本
  • Powershell实现编写和运行脚本
  • PowerShell脚本反引号用法实例:随时随地给代码换行
  • Powershell脚本的4种执行权限介绍
  • PowerShell中获取当前运行脚本路径的方法
  • PowerShell实现动态获取当前脚本运行时消耗的内存
  • PowerShell实现的文件同步脚本分享
  • Powershell实现获取电脑序列号功能脚本分享
  • Powershell脚本中使用条件断点实例

相关文章

  • PowerShell中使用PrintManagement管理打印机示例
  • PowerShell替换字符串操作符replace简明教程
  • PowerShell小技巧之定时记录操作系统行为
  • Powershell小技巧之去除多余的空格
  • Windows 8 中的 PowerShell 3.0
  • PowerShell脚本开发之对指定IP进行端口扫描
  • PowerShell数组结合switch语句产生的奇特效果介绍
  • PowerShell中字符串使用单引号和双引号的区别
  • PowerShell小技巧之同时使用可选强制参数
  • Windows Powershell 介绍和安装

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • PowerShell中使用正则表达式匹配字符串实例
    • Windows Powershell排序和分组管道结果
    • Powershell 查询 Windows 日志的方法
    • powershell远程管理服务器磁盘空间的实现代码
    • Powershell小技巧之获取注册表值的类型
    • PowerShell脚本性能优化技巧总结
    • PowerShell中使用通配符匹配文件路径的例子
    • PowerShell实现按条件终止管道的方法
    • PowerShell中定义多个变量并赋值的例子
    • PowerShell统计文件夹下文件个数的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有