protected virtual bool DefaultExceptionProcessor(
     Exception exception,
     IExceptionDataSetter exceptionDataSetter,
     out ExceptionData exceptionData,
     string caller = null)
 {
     exceptionData = null;
     return(false);
 }
        public bool Handle(
            Exception exception,
            IExceptionDataSetter exceptionDataSetter,
            out ExceptionData exceptionData,
            string caller = null)
        {
            exceptionData = null;

            var process = _processors.LastOrDefault(P => P.Key == exception.GetType()).Value;

            if (process != null)
            {
                return(process.ExtractExceptionData(exception, exceptionDataSetter, out exceptionData));
            }


            return(DefaultExceptionProcessor(exception, exceptionDataSetter, out exceptionData));
        }
Exemplo n.º 3
0
        public ExceptionData Handle(Exception exception, [CallerMemberName] string Caller = null)
        {
            ExceptionData ReturnExceptionData = DefaultExceptionData(exception, Caller);

            foreach (var receiver in receivers)
            {
                if (receiver.Handle(exception, exceptionDataSetter, out ReturnExceptionData, Caller))
                {
                    break;
                }
            }

            if (ReturnExceptionData == null)
            {
                ReturnExceptionData = DefaultExceptionData(exception, Caller);
            }

            return(ReturnExceptionData);
        }