在初始化类型数据期间以及访问 PSObject 对象的成员或使用 LanguagePrimitives等实用工具类之一时,ETS 中可能会出现错误。
运行时错误
在强制转换时,在运行时从 ETS 引发的所有异常都是 ExtendedTypeSystemException 异常,或者是派生自 ExtendedTypeSystemException 类的异常。 这样,脚本开发人员就可以在其脚本中使用 trap 语句捕获这些异常。
获取成员值时出错
获取 ETS 成员(属性、方法或参数化属性)的值时发生的所有错误都会导致引发 GetValueException 或 GetValueInvocationException 异常。 当 ETS 发现发生错误时,将引发 GetValueException 异常。 当被引用成员的基础 getter 识别出发生错误时,将引发 GetValueInvocationException 异常,该异常可能包含或不包含导致获取调用错误的内部异常。
设置成员值时出错
设置 ETS 属性值时发生的所有错误都会导致引发 SetValueException 或 SetValueInvocationException 异常。 当 ETS 发现发生错误时,将引发 SetValueException 异常。 当被引用属性的基础 setter 识别出发生错误时,将引发 SetValueInvocationException 异常,该异常可能包含或不包含导致设置调用错误的内部异常。
调用方法时出错
调用 ETS 方法时发生的所有错误都会导致引发 MethodException 或 MethodInvocationException 异常。 当 ETS 发现发生错误时,将引发 MethodException 异常。 当被引用的方法识别出发生错误时,将引发 MethodInvocationException 异常,该异常可能包含或不包含导致调用错误的内部异常。
强制转换错误
尝试无效强制转换时,将引发 PSInvalidCastException。 由于此异常派生自 system.InvalidCastException ,因此无法直接从脚本中捕获该异常。 请注意,尝试强制转换的实体需要在 PSRuntimeException 中包装 PSInvalidCastException,以便脚本可捕获。 如果尝试设置 PSPropertySet的值,PSMemberSet、PSMethodInfo或 ReadOnlyPSMemberInfoCollection'1的成员,则会引发 NotSupportedException。
常见运行时错误
发生的任何其他常见运行时错误都是类型 ExtendedTypeSystemException 异常,没有其他特定异常类型。
初始化错误
初始化 types.ps1xml时可能会出现错误。 通常,在 PowerShell 运行时启动时显示这些错误。 但是,加载模块时也可以显示它们。