Kullanıcı tarafından filtrelenmiş özel durum işleyicilerini kullanma
Kullanıcı tarafından filtrelenmiş özel durum işleyicileri, özel durum için tanımladığınız gereksinimlere göre özel durumları yakalar ve işler. Bu işleyiciler deyimini catch
when
anahtar sözcüğüyle (Catch
ve When
Visual Basic'te) kullanır.
Bu teknik, belirli bir özel durum nesnesi birden çok hataya karşılık geldiğinde kullanışlıdır. Bu durumda, nesne genellikle hatayla ilişkili belirli hata kodunu içeren bir özelliğe sahiptir. İfadedeki hata kodu özelliğini kullanarak yalnızca bu catch
yan tümcede işlemek istediğiniz hatayı seçebilirsiniz.
Aşağıdaki örnekte deyimi gösterilmektedir catch
/when
.
try
{
//Try statements.
}
catch (Exception ex) when (ex.Message.Contains("404"))
{
//Catch statements.
}
Try
'Try statements.
Catch When Err = VBErr_ClassLoadException
'Catch statements.
End Try
Kullanıcı tarafından filtrelenen yan tümcesinin ifadesi hiçbir şekilde kısıtlanmaz. Kullanıcı tarafından filtrelenen ifadenin yürütülmesi sırasında bir özel durum oluşursa, bu özel durum atılır ve filtre ifadesinin false olarak değerlendirilmiş olduğu kabul edilir. Bu durumda, ortak dil çalışma zamanı geçerli özel durum için bir işleyici aramaya devam eder.
Belirli özel durumu ve kullanıcı tarafından filtrelenmiş yan tümceleri birleştirme
Deyimi catch
hem belirli özel durumu hem de kullanıcı tarafından filtrelenen yan tümceleri içerebilir. Çalışma zamanı önce belirli bir özel durumu sınar. Özel durum başarılı olursa, çalışma zamanı kullanıcı filtresini yürütür. Genel filtre, sınıf filtresinde bildirilen değişkene başvuru içerebilir. İki filtre yan tümcesinin sırasının ters çevrilemeyeceğini unutmayın.
Aşağıdaki örnek, catch deyiminde belirli bir özel durumu ve when anahtar sözcüğünü kullanan kullanıcı tarafından filtrelenmiş yan tümcesini gösterir.
try
{
//Try statements.
}
catch (System.Net.Http.HttpRequestException ex) when (ex.Message.Contains("404"))
{
//Catch statements.
}
Try
'Try statements.
Catch cle As ClassLoadException When cle.IsRecoverable()
'Catch statements.
End Try
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin