Temel bir ReactiveCommand
var. Async sihirbazı yok, sadece düz. Bir istisna eylemcisini alan aşırı yüklenmeyle birlikte Subscribe()
I, ancak istisna eylemcisindeki kesme noktasını asla yakalamadım (bunu beklemiyordum). ThrownErrors
'a abone oluyorum, hiçbir zaman bu özel durum işleyicisinde kesme noktasını vurmadım (bunu bekledim).ReactiveCommand İstisnaları Nasıl Yakalanır?
var myCommand = ReactiveCommand.Create();
// this does not seem to work
myCommand.Subscribe(
_ => { throw new Exception("oops"); },
ex => {
Console.WriteLine(ex.Mesage);
Debugger.Break();
});
//this does not seem to work either
myCommand.ThrownExceptions.Subscribe(
ex => {
Console.WriteLine(ex.Mesage);
Debugger.Break();
});
ödevimi yaptım ve konuya soruları ve cevapları kontrol:
İşte örnek kod.
How to catch exception from ReactiveCommand?
Ben de posta listesine baktım ve buldum bu:
var myCommand = ReactiveCommand.CreateAsyncObservable(_ => this.Throw());
myCommand.Subscribe(
_ => { Console.WriteLine("How did we get here?"); },
// this is not expected to work
ex => {
Console.WriteLine(ex.Message);
Debugger.Break();
});
// however, I sort of expect this to work
myCommand.ThrownExceptions.Subscribe(
ex => {
Console.WriteLine(ex.Message);
Debugger.Break();
});
[...]
private IObservable<object> Throw()
{
Debugger.Break();
throw new Exception("oops");
}
:
https://groups.google.com/forum/#!topic/reactivexaml/Dkc-cSesKPY
yüzden bazı zaman uyumsuz çözümüne bu değiştirmeye karar verdi
Yine de,'inki hariç, herhangi bir kesme noktasını vurmadım.yöntemi. ? Ben yanlış yapıyorum :(
Nasıl burada özel durumları yakalamak gerekiyor
Edit:?
yapmamAncak istisna işleyicisi kesme isabet ben içinden istisna zaman modifiye bu
private IObservable<object> Throw()
{
Debugger.Break();
return Task.Factory.StartNew(() =>
{
throw new Exception("oops");
return new object();
}).ToObservable();
}
Soru gibi gözlemlenebilir: "gözlemlenebilir yöntemi içinde bir istisna işleme ve I kabiliyetim var?"
Temiz, bilgi için teşekkürler. –