我不知道何时应该在创建IObservable时抛出ArgumentException。我应该在Create方法之前还是在?
之内抛出它此:
IObservable<object> CreateObservable(int i)
{
if (i < 0)
throw new ArgumentException();
return Observable.Create(o => { ... });
}
Vs的:
IObservable<object> CreateObservable(int i)
{
return Observable.Create(o =>
{
if (i < 0)
o.OnError(new ArgumentException());
...
});
}
答案 0 :(得分:2)
我建议你fail fast,因此我认为你的第一个选择是正确的。 如果您要使用第二个选项,则消费者只有在订阅序列时才会获得异常,这可能需要一段时间。这将使维护IMO的代码库变得更加困难。