当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 扩展类型系统中的错误和异常

作者:精品下载站 日期:2024-12-14 20:29:18 浏览:16 分类:玩电脑

扩展类型系统中的错误和异常


在类型数据初始化期间以及访问 PSObject 对象的成员或使用实用程序类(例如 LanguagePrimitives)之一时,ETS 中可能会出现错误。

运行时错误

除一种异常外,在转换时,运行时从 ETS 抛出的所有异常要么是 ExtendedTypeSystemException 异常,要么是从 ExtendedTypeSystemException 类派生的异常。这允许脚本开发人员在脚本中使用 Trap 语句捕获这些异常。

获取成员值时出错

获取 ETS 成员(属性、方法或参数化属性)的值时发生的所有错误都会导致引发 GetValueExceptionGetValueInitationException 异常。当 ETS 识别出发生错误时,将引发 GetValueException 异常。当引用成员的底层 getter 识别出发生了错误时,将引发 GetValueInitationException 异常,该异常可能包含也可能不包含导致 get 调用错误的内部异常。

设置成员值时出错

设置 ETS 属性的值时发生的所有错误都会导致引发 SetValueExceptionSetValueInitationException 异常。当 ETS 识别出发生错误时,将引发 SetValueException 异常。当引用属性的底层 setter 识别出发生了错误时,将引发 SetValueInitationException 异常,该异常可能包含也可能不包含导致设置调用错误的内部异常。

调用方法时出错

调用 ETS 方法时发生的所有错误都会导致引发 MethodExceptionMethodInitationException 异常。当 ETS 识别出发生错误时,将引发 MethodException 异常。当引用的方法识别出发生错误时,将引发 MethodInitationException 异常,该异常可能包含也可能不包含导致调用错误的内部异常。

铸造错误

当尝试进行无效转换时,将引发 PSInvalidCastException。由于此异常源自System.InvalidCastException,因此无法直接从脚本中捕获该异常。请注意,尝试转换的实体需要将 PSInvalidCastException 包装在 PSRuntimeException 中,以便脚本可以捕获它。如果尝试设置 PSPropertySetPSMemberSetPSMethodInfo 的值或 ReadOnlyPSMemberInfoCollection`1

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯