Transform 中的 DynamicData 异常不会冒泡
DynamicData Exceptions within Transform don't bubble up
给定以下代码段
var connection = Session.MarketRecords.Connect()
.Group(r => r.SettledDate.Date)
.Transform(grouping => new DayReport(grouping))
.Bind(DayReports, Updater)
.Subscribe();
看起来 Transform 函数中抛出的异常正在被吞噬,因此很难弄清楚什么时候出了问题。我只能识别出这一点,因为 DayReports“列表”没有被填充(而且我知道有记录)所以我认为它可能是 Binding 错误但是在“无处不在”放置断点之后我认为 DayReport 的构造函数有在某些情况下会导致抛出异常的错误。有没有推荐的方法来捕获在这些情况下发生的异常?
已在 Reactive slack 上回复,所以我将其张贴在这里以供参考。
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);
});
给定以下代码段
var connection = Session.MarketRecords.Connect()
.Group(r => r.SettledDate.Date)
.Transform(grouping => new DayReport(grouping))
.Bind(DayReports, Updater)
.Subscribe();
看起来 Transform 函数中抛出的异常正在被吞噬,因此很难弄清楚什么时候出了问题。我只能识别出这一点,因为 DayReports“列表”没有被填充(而且我知道有记录)所以我认为它可能是 Binding 错误但是在“无处不在”放置断点之后我认为 DayReport 的构造函数有在某些情况下会导致抛出异常的错误。有没有推荐的方法来捕获在这些情况下发生的异常?
已在 Reactive slack 上回复,所以我将其张贴在这里以供参考。
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);
});