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.
Çoğu durumda, System.Management.Automation.ErrorRecord nesnesi bir komut veya betik tarafından oluşturulan sonlandırıcı olmayan bir hatayı temsil eder. Hataları sonlandırmak, System.Management.Automation.IContainsErrorRecord arabirimi aracılığıyla errorRecord içindeki ek bilgileri de belirtebilir.
Komut veya betik yürütme sırasında oluşan belirli hataları işlemek için betiğinize veya konağınıza bir hata işleyicisi yazmak istiyorsanız, işlemek istediğiniz hata sınıfını temsil edip etmediğini belirlemek için System.Management.Automation.ErrorRecord nesnesini yorumlamanız gerekir.
Bir cmdlet sonlandırıcı veya sonlandırılmayan bir hatayla karşılaştığında, hata koşulunu açıklayan bir hata kaydı oluşturmalıdır. Konak uygulaması bu hata kayıtlarını araştırmalı ve hatayı azaltacak eylemi gerçekleştirmelidir. Konak uygulaması ayrıca bir kaydı işleyemeyen ancak devam edebilen sonlandırıcı olmayan hataların hata kayıtlarını araştırmalı ve işlem hattının durmasına neden olan hataları sonlandırmak için hata kayıtlarını araştırmalıdır.
Uyarı
Hataları sonlandırmak için cmdlet, System.Management.Automation.Cmdlet.ThrowTerminatingError yöntemini çağırır. Sonlandırılamayan hatalar için cmdlet, System.Management.Automation.Cmdlet.WriteError yöntemini çağırır.
Hata Kaydı Tasarımı
Hata kayıtları, her hata kaydındaki birleştirilmiş bilgilerin benzersiz olduğundan emin olurken özel durumlarda kullanılamayan ek hata bilgileri sağlamak üzere tasarlanmıştır. Bu benzersizlik, konak uygulamasının hata koşulunu ve konağın gerçekleştirmesi gereken eylemi belirleyebilmesi için hata kaydının farklı bölümlerini incelemesine olanak tanır.
Hata Kayıtlarını Yorumlama
Hatayı tanımlamak için hata kaydının birkaç bölümünü gözden geçirebilirsiniz. Bu bölümler şunlardır:
Hata kategorisi
Hata özel durumu
Tam hata tanımlayıcısı (FQID)
Diğer bilgiler
Hata Kategorisi
Hata kaydının hata kategorisi, System.Management.Automation.ErrorCategory numaralandırması tarafından sağlanan önceden tanımlanmış sabitlerden biridir. Bu bilgiler, System.Management.Automation.ErrorRecord nesnesinin System.Management.Automation.ErrorRecord.CategoryInfo özelliği aracılığıyla sağlanır.
Cmdlet CloseError, OpenError, InvalidType, ReadError ve WriteError kategorilerini ve diğer hata kategorilerini belirtebilir. Konak uygulaması hata gruplarını yakalamak için hata kategorisini kullanabilir.
Özel Durum
Hata kaydına dahil edilen özel durum cmdlet'i tarafından sağlanır ve System.Management.Automation.ErrorRecord.Exception System.Management.Automation.ErrorRecord nesnesinin aracılığıyla erişilebilir.
Konak uygulamaları, özel durumun belirli bir sınıftan veya türetilmiş bir sınıftan olduğunu belirlemek için is anahtar sözcüğünü kullanabilir. Aşağıdaki örnekte gösterildiği gibi özel durum türüne dal eklemek daha iyidir.
`if (MyNonTerminatingError.Exception is AccessDeniedException)`
{
...
}
Bu şekilde, türetilmiş sınıfları yakalarsınız. Ancak, özel durum seri durumdan çıkarılırsa sorunlarla karşılaşılır.
The FQID
FQID, hatayı tanımlamak için kullanabileceğiniz en özel bilgilerdir. Cmdlet tanımlı tanımlayıcı, cmdlet sınıfının adı ve hatayı bildiren kaynağı içeren bir dizedir. Genel olarak hata kaydı, Windows Olay günlüğünün olay kaydına benzer. FQID, olay kaydının sınıfını tanımlayan aşağıdaki tanımlama grubuna benzer: (günlük adı, kaynakolay kimliği).
FQID, tek bir dize olarak denetlenecek şekilde tasarlanmıştır. Ancak, hata tanımlayıcısının konak uygulama tarafından ayrıştırılacak şekilde tasarlandığı durumlar vardır. Aşağıdaki örnek, iyi biçimlendirilmiş tam hata tanımlayıcısıdır.
CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand.
Önceki örnekte, ilk belirteç hata tanımlayıcısıdır ve ardından cmdlet sınıfının adı gelir. Hata tanımlayıcısı tek bir belirteç olabileceği gibi, tanımlayıcının denetlenmesini sağlayan noktayla ayrılmış bir tanımlayıcı da olabilir. Hata tanımlayıcısında boşluk veya noktalama işareti kullanmayın. Özellikle virgül kullanmamak önemlidir; Windows PowerShell tarafından tanımlayıcıyı ve cmdlet sınıf adını ayırmak için virgül kullanılır.
Diğer Bilgiler
System.Management.Automation.ErrorRecord nesnesi, hatanın oluştuğu ortamı açıklayan bilgiler de sağlayabilir. Bu bilgiler hata ayrıntıları, çağırma bilgileri ve hata oluştuğunda işlenen hedef nesne gibi öğeleri içerir. Bu bilgiler konak uygulaması için yararlı olsa da, genellikle hatayı tanımlamak için kullanılmaz. Bu bilgiler aşağıdaki özellikler aracılığıyla kullanılabilir:
Ayrıca Bkz.
PowerShell