我有一个方法:
public async Task TakeOrder(int orderId)
{
var request = new Request() { OrderId = orderId, UserId = _myUserId };
var result = await _service.Request<OrderRequest, OrderResponse>(request);
if (!result.Body.Success) // guaranteed to be true
{
if (result.Body.Error != null)
{
throw result.Body.Error;
}
else
{
throw new Exception("Failed to take order"); // always gets hit
}
}
}
所以每当我进入它时,代码运行正常,直到第一个if语句,无论结果如何.Body.Success是真的,它在抛出新的异常后跳转(&#34;未能接受命令&#34 ;)声明。有什么想法吗?
P.S。
我更感兴趣的是为什么它以所描述的方式工作而不是我预期的流程。我可以使代码以其他方式工作,例如使其同步或删除throw语句并将其替换为Console.WriteLine("error");