我有调用另一个 ServiceStack 服务 (B) 的 ServiceStack 服务 (A)。
如果 (B) 抛出错误,我可以在 (A) 中捕获 WebServiceException,但是将 (B) 的错误传播回 (A) 的客户端的推荐方法是什么?我应该重新抛出(B)的异常还是不捕获它?
我有调用另一个 ServiceStack 服务 (B) 的 ServiceStack 服务 (A)。
如果 (B) 抛出错误,我可以在 (A) 中捕获 WebServiceException,但是将 (B) 的错误传播回 (A) 的客户端的推荐方法是什么?我应该重新抛出(B)的异常还是不捕获它?
如果您使用类型化的 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
希望这是有道理的。