问题描述
给出以下代码段
var connection = Session.MarketRecords.Connect()
.Group(r => r.SettledDate.Date)
.Transform(grouping => new DayReport(grouping))
.Bind(DayReports,Updater)
.Subscribe();
看起来像是在Transform函数中引发的异常正在被吞没,因此很难弄清何时出错。我之所以只能识别出这一点,是因为没有填充DayReports“列表”(并且我知道有记录),所以我认为可能是绑定错误,但是在“到处”放置断点后,我发现DayReport的构造函数具有在某些情况下会引发异常的错误。是否有建议的方法可以捕获在这种情况下发生的异常?
解决方法
这已在Reactive松弛上得到了答复,因此我将其发布在这里以供参考。
Subscribe
有一个重载,它带有两个参数,第二个参数是异常处理程序,这将是处理在任何先前调用中抛出的异常的适当方式。因此,以下工作正常:
var connection = Session.MarketRecords.Connect()
.Group(r => r.SettledDate.Date)
.Transform(grouping => new DayReport(grouping))
.Bind(DayReports,Updater)
.Subscribe((change) =>
{
Console.WriteLine(change.Count);
},(ex) =>
{
Console.WriteLine(ex.Message);
});