3

我有调用另一个 ServiceStack 服务 (B) 的 ServiceStack 服务 (A)。

如果 (B) 抛出错误,我可以在 (A) 中捕获 WebServiceException,但是将 (B) 的错误传播回 (A) 的客户端的推荐方法是什么?我应该重新抛出(B)的异常还是不捕获它?

4

1 回答 1

2

如果您使用类型化的 C# 客户端从 (A) 调用 (B),那么是的,如果您希望将异常传播到 (A) 的客户端,那么您不能捕获它,C# 客户端将抛出它遇到的任何异常都会被序列化到 (A) 的客户端,如果该客户端正在使用 C# ServiceClient,那么它将依次抛出该异常。

流程几乎是这样的:

(A client)    ->    (A service) ->     (B client)     ->      (B service)
 deserializes            <-           deserializes    <-   throws Exception E
 and rethrows E                      and rethrows E

希望这是有道理的。

于 2013-03-15T07:20:12.440 回答