'daki hataları yakalamıyor. ReactiveExtension gözlemcisi istisnalarını kullanırken onError eylemi tarafından yakalanmıyor. Aşağıdaki örnek kod kullanılarak, "System.Reactive.Core.dll dosyasında" System.ApplicationException "türünde işlenmeyen bir özel durum oluştu" özel durum yerine ve uygulama sonlandırılıyor. İstisna, çağrı bloğundaki her denemeyi/yakalamayı atlıyor gibi görünüyor..NET ReactiveExtension gözlemcisi, OnError
var source = Observable.Interval(TimeSpan.FromSeconds(seconds));
var observer = Observer.Create<long>(
l =>
{
//do something
throw new ApplicationException("test exception");
},
ex => Console.WriteLine(ex));
var subscription = source.Subscribe(observer);
Gözardı edilenler tarafından istisnaların nasıl ele alınması gerektiği konusunda eksik miyim?
Eğer onNext eyleminde bir try catch koyarsam istisna tutulur ve onu kaydedebilirim.
var source = Observable.Interval(TimeSpan.FromSeconds(seconds));
var observer = Observer.Create<long>(
l =>
{
try
{
//do something
throw new ApplicationException("test exception");
}
catch(Exception ex)
{
//exception can be caught here and logged
Console.WriteLine(ex);
}
},
ex => Console.WriteLine(ex));
var subscription = source.Subscribe(observer);
OnError eylemi tarafından yakalanan istisnanın olması için ne yapmam gerekiyor?
Ve en önemlisi, gözlemcinin sıcaklığına bakılmaksızın, bir gözlemcinin attığı bir istisnayla başa çıkmanın anlamlı bir yolu yoktur; Örneğin, bir hatanın gözlemlenebilir veya gözlemciden kaynaklanıp kaynaklanmadığını ayırt edemezsiniz. Bir “onError” işleyicisini belirtmek, genellikle hesaplama veya uygulamanın genel olarak tutarlı bir durumda olmasını sağlamadan değerli tanılama bilgilerini bastırır. –
@DaveSexton - Çok fazla. – Enigmativity