Rx 中的 ArgumentException.应该扔在哪里
本文关键字:在哪里 中的 ArgumentException Rx | 更新日期: 2023-09-27 18:31:08
我不知道什么时候应该在创建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的代码库变得更加困难。