Rx 中的 ArgumentException.应该扔在哪里



我不知道什么时候应该在创建IObservable时抛出ArgumentException。我应该把它扔在 Create 方法之前还是在 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());
        ...
    });
}

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

相关内容

  • 没有找到相关文章

最新更新