Hibák és kivételek a kiterjesztett típusrendszerben

Hibák fordulhatnak elő az ETS-ben a típusadatok inicializálása során, illetve egy PSObject objektum egy tagja vagy valamelyik segédprogramosztály, például a LanguagePrimitives használata során.

Futásidejű hibák

Egy kivétellel az ETS-ben a futásidő során okozott összes kivétel ExtendedTypeSystemException kivétel vagy az ExtendedTypeSystemException osztályból származtatott kivétel. Ez lehetővé teszi a szkriptfejlesztők számára, hogy a szkriptben a utasítással trap trapet használjanak Trap ezek a kivételek.

Hibák a tagértékek lekért értékeivel

Ha egy ETS-tag (tulajdonság, metódus vagy paraméteres tulajdonság) értékét leküldi, minden hiba GetValueException vagy GetValueInvocationException kivételt ad vissza. Amikor az ETS felismeri, hogy hiba történt, GetValueException kivétel történt. Amikor egy hivatkozott tag mögöttes bevezetője felismeri, hogy hiba történt, getValueInvocationException kivétel történik, amely tartalmazhatja a get invocation hibát okozó belső kivételt.

Hibák a tagértékek beállításakor

Az ETS-tulajdonság értékének beállításakor előforduló összes hiba SetValueException vagy SetValueInvocationException kivételt ad vissza. Amikor az ETS felismeri, hogy hiba történt, a rendszer SetValueException kivételt ad vissza. Amikor egy hivatkozott tulajdonság mögöttes beállítója felismeri, hogy hiba történt, egy SetValueInvocationException kivételt ad vissza, amely tartalmazhatja a készlethívási hibát okozó belső kivételt.

Hibák a metódusok használatával

Az ETS-metódusok meghívása során előforduló összes hiba MethodException vagy MethodInvocationException kivételt ad vissza. Amikor az ETS felismeri, hogy hiba történt, a rendszer MethodException kivételt ad vissza. Amikor a hivatkozott metódus felismeri, hogy hiba történt, a rendszer egy MethodInvocationException kivételt ad vissza, amely a hívási hibát okozó belső kivételt is tartalmazhatja.

Casting-hibák

Érvénytelen leadás megkísérléskor PSInvalidCastException (PSInvalidCastException) hiba történik. Mivel ez a kivétel a System.InvalidCastException kivételből származik, nem lehet közvetlenül elválasztva a szkripttől. Vegye figyelembe, hogy az átadást megkísérlő entitásnak a PSInvalidCastException csonkolását egy PSRuntimeException fájlba kell csomagolni ahhoz, hogy a parancsfájlok trappableek legyenek. Ha egy PSPropertySet, PSMemberSet, PSMethodInfo vagy a ReadOnlyPSMemberInfoCollection'1 tagjaként próbál meg értéket beállítani, a rendszer NotSupportedException hibát ad vissza.

Gyakori futásidejű hibák

Minden egyéb gyakori futásidejű hiba ExtendedTypeSystemException kivétel típusú, további kivételtípusok nélkül.

Inicializálási hibák

Hibák fordulhatnak elő a inicializálása types.ps1xml során. Ezek a hibák általában a PowerShell-futtatás indításakor jelennek meg. A modulok betöltésekor azonban megjeleníthetőek is.