Megszakítást okozó hibákTerminating Errors

Ez a témakör a hibák megszüntetésére szolgáló metódust ismerteti.This topic discusses the method used to report terminating errors. Azt is ismerteti, hogyan hívhatja meg a metódust a parancsmagból, és tárgyalja azokat a kivételeket, amelyeket a Windows PowerShell-futtatókörnyezet visszaadhat a metódus meghívásakor.It also discusses how to call the method from within the cmdlet, and it discusses the exceptions that can be returned by the Windows PowerShell runtime when the method is called.

Megszakítási hiba esetén a parancsmagnak jelentenie kell a hibát a System. Management. Automation. parancsmag. Throwterminatingerror * metódus meghívásával.When a terminating error occurs, the cmdlet should report the error by calling the System.Management.Automation.Cmdlet.Throwterminatingerror* method. Ez a módszer lehetővé teszi, hogy a parancsmag olyan hibaüzenetet küldjön, amely leírja a megszakítást okozó hibát kiváltó feltételt.This method allows the cmdlet to send an error record that describes the condition that caused the terminating error. A hibakódokkal kapcsolatos további információkért lásd: Windows PowerShell-rekordok.For more information about error records, see Windows PowerShell Error Records.

A System. Management. Automation. parancsmag. Throwterminatingerror * metódus hívásakor a Windows PowerShell futtatókörnyezet véglegesen leállítja a folyamat végrehajtását, és egy System. Management. Automation. Pipelinestoppedexception kivételt dob.When the System.Management.Automation.Cmdlet.Throwterminatingerror* method is called, the Windows PowerShell runtime permanently stops the execution of the pipeline and throws a System.Management.Automation.Pipelinestoppedexception exception. A System. Management. Automation. parancsmag. WriteObject, System. Management. Automation. parancsmag. WriteErrorvagy más API-k meghívására tett minden további kísérlet miatt ezek a hívások a System. Management. Automation. Pipelinestoppedexception kivételt okozzák.Any subsequent attempts to call System.Management.Automation.Cmdlet.WriteObject, System.Management.Automation.Cmdlet.WriteError, or several other APIs causes those calls to throw a System.Management.Automation.Pipelinestoppedexception exception.

A System. Management. Automation. Pipelinestoppedexception kivétel akkor is megjelenhet, ha a folyamat egy másik parancsmagja egy megszakítási hibát jelez, ha a felhasználó a folyamat leállítását kérte, vagy ha a folyamat bármilyen okból leállt a befejezés előtt.The System.Management.Automation.Pipelinestoppedexception exception can also occur if another cmdlet in the pipeline reports a terminating error, if the user has asked to stop the pipeline, or if the pipeline has been halted before completion for any reason. A parancsmagnak nem kell megfognia a System. Management. Automation. Pipelinestoppedexception kivételt, kivéve, ha a nyitott erőforrásokat vagy annak belső állapotát törölni kell.The cmdlet does not need to catch the System.Management.Automation.Pipelinestoppedexception exception unless it must clean up open resources or its internal state.

A parancsmagok tetszőleges számú kimeneti objektumot vagy megszakítás nélküli hibát írhatnak a megszakítást okozó hiba jelentése előtt.Cmdlets can write any number of output objects or non-terminating errors before reporting a terminating error. A leállítási hiba azonban véglegesen leállítja a folyamatot, és nem tud további kimenetet, leállítási hibákat vagy megszakítás nélküli hibákat jelenteni.However, the terminating error permanently stops the pipeline, and no further output, terminating errors, or non-terminating errors can be reported.

A parancsmagok a System. Management. Automation . parancsmag. Throwterminatingerror * metódust hívhatják csak a System. Management. Automation. parancsmag. BeginProcessing, System. Management. Automation. parancsmag. ProcessRecord, vagy System. Management. Automation. parancsmag. EndProcessing bemeneti feldolgozási módszer használatával.Cmdlets can call System.Management.Automation.Cmdlet.Throwterminatingerror* only from the thread that called the System.Management.Automation.Cmdlet.BeginProcessing, System.Management.Automation.Cmdlet.ProcessRecord, or System.Management.Automation.Cmdlet.EndProcessing input processing method. Ne kísérelje meg a System. Management. Automation. parancsmag. Throwterminatingerror * vagy a System. Management. Automation. parancsmag. WriteError meghívását egy másik szálból.Do not attempt to call System.Management.Automation.Cmdlet.Throwterminatingerror* or System.Management.Automation.Cmdlet.WriteError from another thread. Ehelyett a hibákat vissza kell jelenteni a fő szálnak.Instead, errors must be communicated back to the main thread.

Lehetséges, hogy egy parancsmag kivételt dob a System. Management. Automation. parancsmag. BeginProcessing, System. Management. Automation. parancsmag. ProcessRecordvagy System. Management. Automation. parancsmag. EndProcessing metódus megvalósításában.It is possible for a cmdlet to throw an exception in its implementation of the System.Management.Automation.Cmdlet.BeginProcessing, System.Management.Automation.Cmdlet.ProcessRecord, or System.Management.Automation.Cmdlet.EndProcessing method. Az ezekből a metódusokból kiváltott kivételek (kivéve a Windows PowerShell-állomást leállító néhány súlyos hibát) olyan megszakítási hibaként vannak értelmezve, amely leállítja a folyamatot, de nem a Windows PowerShell egészét.Any exception thrown from these methods (except for a few severe error conditions that stop the Windows PowerShell host) is interpreted as a terminating error which stops the pipeline, but not Windows PowerShell as a whole. (Ez csak a fő parancsmag szálára vonatkozik.(This applies only to the main cmdlet thread. Nem kezelt kivételek a parancsmag által elhelyezkedő szálakban – általánosságban leállítja a Windows PowerShell-gazdagépet.) Azt javasoljuk, hogy a System. Management. Automation. parancsmag. Throwterminatingerror * használja a kivétel eldobása helyett, mert a hibakód további információkat tartalmaz a hiba feltételéről, ami a végfelhasználó számára hasznos.Uncaught exceptions in threads spawned by the cmdlet, in general, halt the Windows PowerShell host.) We recommend that you use System.Management.Automation.Cmdlet.Throwterminatingerror* rather than throwing an exception because the error record provides additional information about the error condition, which is useful to the end-user. A parancsmagoknak figyelembe kell venniük a felügyelt kód iránymutatását az összes kivétel () befogásával és kezelésével kapcsolatban catch (Exception e) .Cmdlets should honor the managed code guideline against catching and handling all exceptions (catch (Exception e)). Csak az ismert és a várt típusú kivételeket konvertálja a hibás rekordokra.Convert only exceptions of known and expected types into error records.

Lásd még:See Also

System. Management. Automation. parancsmag. BeginProcessingSystem.Management.Automation.Cmdlet.BeginProcessing

System. Management. Automation. parancsmag. EndProcessingSystem.Management.Automation.Cmdlet.EndProcessing

System. Management. Automation. parancsmag. ProcessRecordSystem.Management.Automation.Cmdlet.ProcessRecord

System. Management. Automation. PipelinestoppedexceptionSystem.Management.Automation.Pipelinestoppedexception

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

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

Windows PowerShelles hibarekordokWindows PowerShell Error Records

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