[玩转系统] Cmdlet 错误报告
作者:精品下载站 日期:2024-12-14 02:52:17 浏览:15 分类:玩电脑
Cmdlet 错误报告
Cmdlet 应根据错误是终止错误还是非终止错误以不同方式报告错误。终止错误是导致管道立即终止的错误,或者是没有理由继续处理时发生的错误。非终止错误是报告当前错误情况的错误,但 cmdlet 可以继续处理输入对象。对于非终止错误,通常会通知用户出现问题,但 cmdlet 会继续处理下一个输入对象。
除非另有说明,本文档中提到的所有类和方法都来自 System.Management.Automation 命名空间。
终止和非终止错误
以下准则可用于确定错误条件是终止错误还是非终止错误。
错误情况是否会阻止您的 cmdlet 成功处理任何进一步的输入对象?如果是这样,则这是一个终止错误。
错误条件是否与特定输入对象或输入对象的子集相关?如果是这样,这是一个非终止错误。
-
该 cmdlet 是否接受多个输入对象,以便在另一个输入对象上进行处理可以成功?如果是这样,这是一个非终止错误。
可以接受多个输入对象的 Cmdlet 应该决定什么是终止错误和非终止错误,即使特定情况仅适用于单个输入对象也是如此。
Cmdlet 可以接收任意数量的输入对象,并在引发终止异常之前发送任意数量的成功或错误对象。接收到的输入对象的数量与发送的成功和错误对象的数量之间没有关系。
只能接受 0-1 个输入对象并仅生成 0-1 个输出对象的 Cmdlet 应将错误视为终止错误并生成终止异常。
报告非终止错误
非终止错误的报告应始终在以下方法的 cmdlet 实现中完成:
- Cmdlet.BeginProcessing
- Cmdlet.ProcessRecord
- Cmdlet.EndProcessing
这些类型的错误是通过调用 Cmdlet.WriteError 方法来报告的,该方法又将错误记录发送到错误流。
报告终止错误
通过引发异常或调用 Cmdlet.ThrowTerminateError 方法来报告终止错误。请注意,cmdlet 还可以捕获并重新抛出异常,例如 OutOfMemory,但是,它们不需要重新抛出异常,因为 PowerShell 运行时也会捕获它们。
您还可以针对特定于您的情况的问题定义自己的例外,或使用其错误记录向现有例外添加附加信息。
错误记录
PowerShell 使用 ErrorRecord 对象描述非终止错误条件。每个对象都提供错误类别信息、可选目标对象以及有关错误条件的详细信息。
错误标识符
错误标识符是一个简单的字符串,用于标识 cmdlet 内的错误情况。 PowerShell 将此标识符与 cmdlet 标识符相结合,创建一个完全限定的错误标识符,稍后可以在过滤错误流或记录错误、响应特定错误或执行其他用户特定活动时使用。
指定错误标识符时应遵循以下准则:
将不同的、高度特定的错误标识符分配给不同的代码路径。每个调用 Cmdlet.WriteError 或 Cmdlet.ThrowTerminateError 的代码路径都应该有自己的错误标识符。
对于终止错误和非终止错误,错误标识符对于公共语言运行时 (CLR) 异常类型应该是唯一的。
不要更改 cmdlet 或 PowerShell 提供程序版本之间的错误标识符的语义。建立错误标识符的语义后,它应该在 cmdlet 的整个生命周期中保持不变。
对于终止错误,请使用特定 CLR 异常类型的唯一错误标识符。如果异常类型发生更改,请使用新的错误标识符。
对于非终止错误,请对特定输入对象使用特定错误标识符。
选择与所报告的错误简洁对应的标识符文本。不要使用空格或标点符号。
不要生成不可重现的错误标识符。例如,不要生成包含进程标识符的标识符。仅当错误标识符与遇到相同问题的其他用户看到的标识符相对应时,错误标识符才有用。
错误类别
错误类别用于为用户对错误进行分组。 PowerShell 定义了这些类别,并且 cmdlet 和 PowerShell 提供程序在生成错误记录时必须在它们之间进行选择。
有关可用错误类别的说明,请参阅 ErrorCategory 枚举。一般来说,您应该尽可能避免使用 NoError、UndefinedError 和 GenericError。
当用户将$ErrorView
设置为CategoryView时,用户可以根据类别查看错误。
参见
Cmdlet 概述
Cmdlet 输出的类型
Windows PowerShell 参考
- 上一篇:[玩转系统] 扩展输出对象
- 下一篇:[精彩网文] 坚强女性的 8 个习惯
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag