dispatcher inner exception

This commit is contained in:
2026-02-05 19:25:58 +01:00
parent 9c75216bea
commit a23ba3714b
2 changed files with 10 additions and 6 deletions

View File

@@ -5,7 +5,7 @@ namespace AipsCore.Application.Common.Dispatcher;
public class DispatchException : Exception
{
public DispatchException(object commandQuery)
: base($"Error while dispatching '{commandQuery.GetType().Name}'")
public DispatchException(object commandQuery, Exception innerException)
: base($"Error dispatching '{commandQuery.GetType().Name}' because of: {innerException.Message}", innerException)
{ }
}

View File

@@ -59,11 +59,15 @@ public sealed class Dispatcher : IDispatcher
private dynamic ResolveHandler(Type handlerType, object commandOrQuery)
{
dynamic? handler = _serviceProvider.GetService(handlerType);
if (handler is null)
dynamic handler;
try
{
throw new DispatchException(commandOrQuery);
handler = _serviceProvider.GetRequiredService(handlerType);
}
catch (InvalidOperationException serviceProviderException)
{
throw new DispatchException(commandOrQuery, serviceProviderException);
}
return handler;