1

我不知道何时应该在创建 IObservable 时抛出 ArgumentException。我应该在 Create 方法之前还是在内部抛出它?

这个:

IObservable<object> CreateObservable(int i)
{
    if (i < 0)
        throw new ArgumentException();

    return Observable.Create(o => { ... });
}

对比:

IObservable<object> CreateObservable(int i)
{
    return Observable.Create(o =>
    {
        if (i < 0)
            o.OnError(new ArgumentException());

        ...
    });
}
4

1 回答 1

2

我建议你快速失败,因此我认为你的第一个选择是正确的。如果您要使用第二个选项,则消费者只会在订阅序列时收到异常,这可能是一段时间后。这将使维护 IMO 的代码库变得更加困难。

于 2013-09-13T15:42:34.750 回答