diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/stub/UnaryStubMethodHandler.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/stub/UnaryStubMethodHandler.java index f2bff904f1..81e069fa63 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/stub/UnaryStubMethodHandler.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/stub/UnaryStubMethodHandler.java @@ -34,7 +34,11 @@ public class UnaryStubMethodHandler implements StubMethodHandler { T request = (T) arguments[0]; CompletableFuture future = new CompletableFuture<>(); StreamObserver responseObserver = new FutureToObserverAdaptor<>(future); - func.accept(request, responseObserver); + try { + func.accept(request, responseObserver); + } catch (Throwable e) { + future.completeExceptionally(e); + } return future; } }