ErrorRecord objektumok értelmezéseInterpreting ErrorRecord Objects

A legtöbb esetben a System. Management. Automation. ErrorRecord objektum a parancs vagy parancsfájl által generált megszakítás nélküli hibát jelöl.In most cases, an System.Management.Automation.ErrorRecord object represents a non-terminating error generated by a command or script. A leállítási hibák a System. Management. Automation. Icontainserrorrecord felületen keresztül is megadhatják a további információkat egy ErrorRecord.Terminating errors can also specify the additional information in an ErrorRecord via the System.Management.Automation.Icontainserrorrecord interface.

Ha a parancsfájlban vagy egy gazdagépen is szeretne írni egy, a parancs vagy a parancsfájl végrehajtása során előforduló hibák kezelésére szolgáló hibát, akkor a System. Management. Automation. ErrorRecord objektumot kell értelmezni annak megállapításához, hogy az a kezelni kívánt hiba osztályát jelöli-e.If you want to write an error handler in your script or a host to handle specific errors that occur during command or script execution, you must interpret the System.Management.Automation.ErrorRecord object to determine whether it represents the class of error that you want to handle.

Ha egy parancsmag leáll vagy megszakítást nem okozó hibát észlel, akkor a hiba feltételét leíró hibát kell létrehoznia.When a cmdlet encounters a terminating or non-terminating error, it should create an error record that describes the error condition. A gazda alkalmazásnak meg kell vizsgálnia ezeket a hibákat, és végre kell hajtania valamilyen műveletet, ami csökkenti a hibát.The host application must investigate these error records and perform whatever action will mitigate the error. A gazda alkalmazásnak meg kell vizsgálnia azokat a nem lezáró hibákra vonatkozó hibákat, amelyek nem tudtak feldolgozni egy rekordot, de folytatódnak, és meg kell vizsgálnia azokat a hibákat, amelyek miatt leáll a folyamat leállítása.The host application must also investigate error records for nonterminating errors that failed to process a record but were able to continue, and it must investigate error records for terminating errors that caused the pipeline to stop.

Megjegyzés

A hibák megszüntetéséhez a parancsmag a System. Management. Automation. parancsmag. Throwterminatingerror * metódust hívja meg.For terminating errors, the cmdlet calls the System.Management.Automation.Cmdlet.Throwterminatingerror* method. A megszakítást nem okozó hibák esetén a parancsmag meghívja a System. Management. Automation. parancsmag. WriteError metódust.For non-terminating errors, the cmdlet calls the System.Management.Automation.Cmdlet.WriteError method.

Hiba a rekord tervezésekorError Record Design

A hibaüzenetek úgy vannak kialakítva, hogy olyan további hibaüzeneteket szolgáltassanak, amelyek nem érhetők el a kivételekben, miközben biztosítják, hogy az egyes hibákhoz tartozó összesített információk egyediek legyenek.Error records are designed to provide additional error information that is not available in exceptions while ensuring that the combined information in each error record is unique. Ez az egyediség lehetővé teszi, hogy a gazda alkalmazás megvizsgálja a hiba rekordjának különböző részeit, hogy azonosítani tudja a hiba feltételét, és a gazdagép által végrehajtandó műveletet.This uniqueness allows the host application to inspect the different parts of the error record so that it can identify the error condition and the action the host must take.

A hibákra vonatkozó rekordok értelmezéseInterpreting Error Records

A hiba azonosításához tekintse át a hiba rekordjának több részletét.You can review several parts of the error record to identify the error. Ezek a részek a következők:These parts include the following:

  • A hiba kategóriájaThe error category

  • A hiba kivételeThe error exception

  • A teljesen minősített hiba azonosítója (FQID)The fully qualified error identifier (FQID)

  • Egyéb információkOther information

A hiba kategóriájaThe Error Category

A hiba rekordja a System. Management. Automation. Errorcategory enumerálás által megadott előre definiált állandók egyike.The error category of the error record is one of the predefined constants provided by the System.Management.Automation.Errorcategory enumeration. Ez az információ a System. Management. Automation. ErrorRecord objektum System. Management. Automation. ErrorRecord. CategoryInfo tulajdonságán keresztül érhető el.This information is available through the System.Management.Automation.ErrorRecord.CategoryInfo property of the System.Management.Automation.ErrorRecord object.

A parancsmag megadhatja a CloseError, a OpenError, a InvalidType, a olvasási hiba és a WriteError kategóriát, valamint más típusú hibákat is.The cmdlet can specify the CloseError, OpenError, InvalidType, ReadError, and WriteError categories, and other error categories. A gazda alkalmazás a hiba kategóriáját használva rögzíti a hibák csoportjait.The host application can use the error category to capture groups of errors.

A kivételThe Exception

A hiba rekordban szereplő kivételt a parancsmag nyújtja, és a System. Management. Automation. ErrorRecord objektum System. Management. Automation. ErrorRecord. Exception * tulajdonságával érhető el.The exception included in the error record is provided by the cmdlet and can be accessed through the System.Management.Automation.ErrorRecord.Exception* property of the System.Management.Automation.ErrorRecord object.

A gazda alkalmazások a is kulcsszó használatával azonosíthatják, hogy a kivétel egy adott osztályból vagy származtatott osztályból származik-e.Host applications can use the is keyword to identify that the exception is of a specific class or of a derived class. Az alábbi példában látható módon jobb a kivétel típusának elágazása.It is better to branch on the exception type, as shown in the following example.

if (MyNonTerminatingError.Exception is AccessDeniedException)

Ily módon a származtatott osztályokat kell megfognia.This way, you catch the derived classes. A kivétel deszerializálása azonban problémákba ütközik.However, there are problems if the exception is deserialized.

A FQIDThe FQID

A FQID a hiba azonosítására használható legpontosabb információ.The FQID is the most specific information you can use to identify the error. Ez egy olyan karakterlánc, amely tartalmaz egy parancsmag által definiált azonosítót, a parancsmag osztály nevét, valamint a hibát jelentett forrást.It is a string that includes a cmdlet-defined identifier, the name of the cmdlet class, and the source that reported the error. Általánosságban elmondható, hogy egy hiba rekord a Windows-Eseménynapló egy esemény-rekordjához hasonlít.In general, an error record is analogous to an event record of a Windows Event log. A FQID a következő rekordhoz hasonlít, amely az esemény rekordjának osztályát azonosítja: (napló neve, forrás, eseményazonosító).The FQID is analogous to the following tuple, which identifies the class of the event record: (log name, source, event ID).

A FQID úgy van kialakítva, hogy egyetlen sztringként legyen megvizsgálva.The FQID is designed to be inspected as a single string. Léteznek azonban olyan esetek, amikor a rendszer a gazdagép alkalmazásával elemezni kívánja a hiba azonosítóját.However, cases exist in which the error identifier is designed to be parsed by the host application. A következő példa egy jól formázott, teljesen minősített hiba-azonosító.The following example is a well-formed fully qualified error identifier.

CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand.

Az előző példában az első jogkivonat a hiba azonosítója, amelyet a parancsmag osztály neve követ.In the previous example, the first token is the error identifier, which is followed by the name of the cmdlet class. A hiba azonosítója lehet egyetlen jogkivonat, vagy lehet egy ponttal tagolt azonosító, amely lehetővé teszi az azonosítók felügyeletét.The error identifier can be a single token, or it can be a dot-separated identifier that allows for branching on inspection of the identifier. Ne használjon szóközt vagy írásjelet a hibás azonosítóban.Do not use white space or punctuation in the error identifier. Különösen fontos, hogy ne használjon vesszőt; a Windows PowerShell vesszőt használ, hogy elkülönítse az azonosítót és a parancsmag osztály nevét.It is especially important not to use a comma; a comma is used by Windows PowerShell to separate the identifier and the cmdlet class name.

Egyéb információkOther Information

A System. Management. Automation. ErrorRecord objektum olyan információt is tartalmazhat, amely leírja azt a környezetet, amelyben a hiba történt.The System.Management.Automation.ErrorRecord object might also provide information that describes the environment in which the error occurred. Ezek az adatok olyan elemeket tartalmaznak, mint a hiba részletei, a Meghívási adatok és a hiba előfordulásakor feldolgozott célobjektum.This information includes items such as error details, invocation information, and the target object that was being processed when the error occurred. Bár ezek az információk hasznosak lehetnek a gazda alkalmazás számára, ez általában nem a hiba azonosítására szolgál.Although this information might be useful to the host application, it is not typically used to identify the error. Ezek az információk a következő tulajdonságokkal érhetők el:This information is available through the following properties:

System. Management. Automation. ErrorRecord. ErrorDetailsSystem.Management.Automation.ErrorRecord.ErrorDetails

System. Management. Automation. ErrorRecord. InvocationInfoSystem.Management.Automation.ErrorRecord.InvocationInfo

System. Management. Automation. ErrorRecord. TargetObjectSystem.Management.Automation.ErrorRecord.TargetObject

Lásd még:See Also

System. Management. Automation. ErrorRecordSystem.Management.Automation.ErrorRecord

System. Management. Automation. ErrorcategorySystem.Management.Automation.Errorcategory

System. Management. Automation. ErrorcategoryinfoSystem.Management.Automation.Errorcategoryinfo

System. Management. Automation. parancsmag. WriteErrorSystem.Management.Automation.Cmdlet.WriteError

System. Management. Automation. parancsmag. Throwterminatingerror *System.Management.Automation.Cmdlet.Throwterminatingerror*

Megszakítást nem okozó hibajelentések hozzáadása a parancsmaghozAdding Non-Terminating Error Reporting to Your Cmdlet

Windows PowerShell hibajelentésWindows PowerShell Error Reporting

Windows PowerShell-parancsmag írásaWriting a Windows PowerShell Cmdlet