From 732cdbfc1478a3a9c4722c8b7c59b1c325d3258a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Sat, 4 Feb 2023 18:58:02 +0100 Subject: [PATCH] feat: safely call message responders to catch exceptions --- src/Core/NosSmooth.Comms.Core/MessageHandler.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Core/NosSmooth.Comms.Core/MessageHandler.cs b/src/Core/NosSmooth.Comms.Core/MessageHandler.cs index 013c935..89ca392 100644 --- a/src/Core/NosSmooth.Comms.Core/MessageHandler.cs +++ b/src/Core/NosSmooth.Comms.Core/MessageHandler.cs @@ -91,7 +91,7 @@ public class MessageHandler var responders = scope.ServiceProvider .GetServices>() - .Select(x => x.Respond(data, ct)) + .Select(x => SafeCall(x.Respond(data, ct))) .ToArray(); var results = (await Task.WhenAll(responders)) @@ -130,4 +130,16 @@ public class MessageHandler return result; } + + private async Task SafeCall(Task respond) + { + try + { + return await respond; + } + catch (Exception e) + { + return e; + } + } } \ No newline at end of file -- 2.48.1