/// <summary>
        ///     Invokes a method when a message handler throws an exception
        /// </summary>
        /// <typeparam name="TMessageType">
        ///     The message type
        /// </typeparam>
        /// <param name="builder">The action builder</param>
        /// <param name="onExceptionFunc">The method</param>
        /// <returns>A builder</returns>
        public static IActionDecoratorBuilder <TMessageType> OnException <TMessageType>(
            this IActionDecoratorBuilder <TMessageType> builder,
            Action <TMessageType> onExceptionFunc)
        {
            if (onExceptionFunc == null)
            {
                throw new ArgumentNullException(nameof(onExceptionFunc));
            }

            return(builder.OnException(
                       (message, exception) =>
            {
                onExceptionFunc(message);
                return TaskHelper.TrueTask;
            }));
        }