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

Powershell小技巧之捕获脚本内部的异常

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

hebedich 通过本文主要向大家介绍了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>

异常捕获成功,输出:

在trap中捕获到脚本异常
The term 'Get-FanBingbing' is not recognized as the name of a cmdlet
</div>

接下来我把3.three.test.ps1脚本文件的内容改成:

dir D:\ShenMaDoushiFuYun #目录不存在
</div>

再运行,这时没有捕获到异常,错误为: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小技巧之同时使用可选强制参数
  • PowerShell中的变量基础知识介绍
  • PowerShell入门教程之编写和使用脚本模块实例
  • Powershell ISE的抽象语法树编程示例
  • Powershell获取图片名字、文件夹及拍摄时间的例子
  • PowerShell小技巧之启动远程桌面连接
  • Powershell学习笔记--使用正则表达式查找文件
  • PowerShell查询和删除打印任务操作代码实例
  • 探索PowerShell (四) PowerShell的对象、格式与参数
  • PowerShell正则表达式(Regex)从右往左进行匹配方法代码实例

文章分类

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

最近更新的内容

    • Windows Powershell 自定义控制台
    • PowerShell脚本trap语句捕获异常写法实例
    • Windows Powershell ForEach-Object 循环
    • PowerShell调用Web测试工具Selenium实例
    • PowerShell添加本地账户脚本分享
    • PowerShell复制命令行历史命令方法
    • PowerShell小技巧之从函数中返回多个值
    • Powershell中定义常量的方法
    • Windows Powershell对象转换成文本
    • PowerShell Continue语句使用示例

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

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