Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, sonlandırıcı hataları bildirmek için kullanılan yöntem açıklanmaktadır. Ayrıca cmdlet'in içinden yönteminin nasıl çağrılacağı açıklanır ve yöntem çağrıldığında Windows PowerShell çalışma zamanı tarafından döndürülebilecek özel durumları ele alır.
Sonlandırıcı bir hata oluştuğunda, cmdlet'in System.Management.Automation.Cmdlet.ThrowTerminatingError* yöntemini çağırarak hatayı bildirmesi gerekir. Bu yöntem, cmdlet'in sonlandırıcı hataya neden olan koşulu açıklayan bir hata kaydı göndermesine olanak tanır. Hata kayıtları hakkında daha fazla bilgi için bkz. Windows PowerShell Hata Kayıtları.
System.Management.Automation.Cmdlet.ThrowTerminatingError* yöntemi çağrıldığında, Windows PowerShell çalışma zamanı işlem hattının yürütülmesini kalıcı olarak durdurur ve System.Management.Automation.PipelineStoppedException özel durumu oluşturur. Sonraki System.Management.Automation.Cmdlet.WriteObject, System.Management.Automation.Cmdlet.WriteErrorveya diğer birçok API çağrıları, bu çağrıların System.Management.Automation.PipelineStoppedException özel durumu neden olur.
System.Management.Automation.PipelineStoppedException özel durumu, işlem hattındaki başka bir cmdlet sonlandırıcı bir hata bildiriyorsa, kullanıcı işlem hattını durdurmak istediyse veya işlem hattı herhangi bir nedenle tamamlanmadan önce durdurulduysa da oluşabilir. Açık kaynakları veya iç durumunu temizlemesi gerekmediği sürece cmdlet'in System.Management.Automation.PipelineStoppedException özel durumunu yakalaması gerekmez.
Cmdlet'ler, sonlandırma hatası bildirmeden önce herhangi bir sayıda çıkış nesnesi veya sonlandırılmayan hatalar yazabilir. Ancak sonlandırma hatası işlem hattını kalıcı olarak durdurur ve başka çıkış, sonlandırma hataları veya sonlandırılmayan hatalar bildirilemez.
Cmdlet'ler System.Management.Automation.Cmdlet.ThrowTerminatingError* yalnızca System.Management.Automation.Cmdlet.BeginProcessing adlı iş parçacığından çağırabilir, System.Management.Automation.Cmdlet.ProcessRecordveya System.Management.Automation.Cmdlet.EndProcessing giriş işleme yöntemi. System.Management.Automation.Cmdlet.ThrowTerminatingError* veya System.Management.Automation.Cmdlet.WriteError başka bir iş parçacığından çağırmayı denemeyin. Bunun yerine, hatalar ana iş parçacığına geri iletilmelidir.
Bir cmdlet'in system.management.automation.cmdlet.beginprocessing , System.Management.Automation.Cmdlet.ProcessRecordveya System.Management.Automation.Cmdlet.EndProcessing yönteminin uygulanmasında bir özel durum oluşturması mümkündür. Bu yöntemlerden atılan tüm özel durumlar (Windows PowerShell konağından durduran birkaç önemli hata koşulu dışında), işlem hattını durduran ancak bir bütün olarak Windows PowerShell'i durduran bir sonlandırma hatası olarak yorumlanır. (Bu yalnızca ana cmdlet iş parçacığı için geçerlidir. Cmdlet tarafından oluşturulan iş parçacıklarındaki yakalanmamış özel durumlar, genel olarak Windows PowerShell konağında durur.) Hata kaydı son kullanıcı için yararlı olan hata koşulu hakkında ek bilgi sağladığından, özel durum oluşturma yerine System.Management.Automation.Cmdlet.ThrowTerminatingError* kullanmanızı öneririz. Cmdlet'ler, tüm özel durumları (catch (Exception e)) yakalamaya ve işlemeye karşı yönetilen kod kılavuzuna uymalıdır. Yalnızca bilinen ve beklenen türlerin özel durumlarını hata kayıtlarına dönüştürün.
Ayrıca Bkz.
System.Management.Automation.Cmdlet.BeginProcessing
System.Management.Automation.Cmdlet.EndProcessing
System.Management.Automation.Cmdlet.ProcessRecord
System.Management.Automation.PipelineStoppedException
System.Management.Automation.Cmdlet.ThrowTerminatingError*
System.Management.Automation.Cmdlet.WriteError
PowerShell