C# 我应该在failed grain方法中抛出异常吗?
我有两个标记为TransactionOption.CreateOrJoin的grain方法,它由另一个标记为TransactionOption.Create的grain方法调用。如果标记为TransactionOption.CreateOrJoin的两个grain方法中的任何一个失败,我想中止所有进程。我应该抛出这样的异常吗? 或者,是否存在中止所有进程的解决方案C# 我应该在failed grain方法中抛出异常吗?,c#,asp.net-core,.net-core,orleans,actor-model,C#,Asp.net Core,.net Core,Orleans,Actor Model,我有两个标记为TransactionOption.CreateOrJoin的grain方法,它由另一个标记为TransactionOption.Create的grain方法调用。如果标记为TransactionOption.CreateOrJoin的两个grain方法中的任何一个失败,我想中止所有进程。我应该抛出这样的异常吗? 或者,是否存在中止所有进程的解决方案 await _balance.PerformUpdate(q =>{ if (q.Amount + amount >
await _balance.PerformUpdate(q =>{
if (q.Amount + amount > _balanceLimit)
{
throw new ApplicationException("limit exceeded");
}
q.Amount += amount;
});
许多人(包括我)说,您不应该将异常用于流控制。您正在检查常见情况(>限制),这并不是什么意外情况。您可以返回一个结果,其中包括操作是否成功。很多人(包括我)都说,流控制不应该使用异常。您正在检查常见情况(>限制),这并不是什么意外情况。您可以返回一个结果,其中包括操作是否成功。美国。