Transform中的DynamicData异常不会冒泡

问题描述

给出以下代码

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);
                    });

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...