2017-05-09 107 views

回答

0

你不能在攔截器中。 gRPC存根和核心庫將重新映射到StatusRuntimeException的異常。攔截器旨在讓您修改請求和響應,但仍然通過gRPC API浮出水面。

您可以編寫自己的存根包裝器(可能使用AbstractStub)來重新映射這些異常。

0

我有同樣的問題,它不能完成,因爲onMessage方法將捕獲任何可拋出StatusRuntimException和狀態將被取消。

https://github.com/grpc/grpc-java/issues/3434

所以在我的情況下,服務器和客戶端應該使用某種類似代碼(HTTP代碼)標準和消息的。所以在服務層,檢查響應代碼!= 200再扔從代碼和消息的異常從服務器

我的職位是由Carl Mastrangelo太:)

回答