コード例 #1
0
 public static void MapAndReportGrayExceptions(GrayException.UserCodeDelegate tryCode, GrayException.ExceptionFilterDelegate exceptionFilter)
 {
     GrayException.< > c__DisplayClassd CS$ < > 8__locals1 = new GrayException.< > c__DisplayClassd();
     CS$ < > 8__locals1.tryCode         = tryCode;
     CS$ < > 8__locals1.exceptionFilter = exceptionFilter;
     ILUtil.DoTryFilterCatch(new TryDelegate(CS$ < > 8__locals1, (UIntPtr)ldftn(< MapAndReportGrayExceptions > b__b)), new FilterDelegate(CS$ < > 8__locals1, (UIntPtr)ldftn(< MapAndReportGrayExceptions > b__c)), new CatchDelegate(null, (UIntPtr)ldftn(ExceptionCatcher)));
 }
コード例 #2
0
 public static void MapAndReportGrayExceptions(GrayException.UserCodeDelegate tryCode, GrayException.IsGrayExceptionDelegate isGrayExceptionDelegate)
 {
     GrayException.< > c__DisplayClass9 CS$ < > 8__locals1 = new GrayException.< > c__DisplayClass9();
     CS$ < > 8__locals1.tryCode = tryCode;
     CS$ < > 8__locals1.isGrayExceptionDelegate = isGrayExceptionDelegate;
     ILUtil.DoTryFilterCatch(new TryDelegate(CS$ < > 8__locals1, (UIntPtr)ldftn(< MapAndReportGrayExceptions > b__7)), new FilterDelegate(CS$ < > 8__locals1, (UIntPtr)ldftn(< MapAndReportGrayExceptions > b__8)), new CatchDelegate(null, (UIntPtr)ldftn(ExceptionCatcher)));
 }
コード例 #3
0
 public static void MapAndReportGrayExceptions(GrayException.UserCodeDelegate tryCode, Action <Exception> reportWatsonDelegate)
 {
     GrayException.< > c__DisplayClass5 CS$ < > 8__locals1 = new GrayException.< > c__DisplayClass5();
     CS$ < > 8__locals1.tryCode = tryCode;
     CS$ < > 8__locals1.reportWatsonDelegate = reportWatsonDelegate;
     ILUtil.DoTryFilterCatch(new TryDelegate(CS$ < > 8__locals1, (UIntPtr)ldftn(< MapAndReportGrayExceptions > b__3)), new FilterDelegate(CS$ < > 8__locals1, (UIntPtr)ldftn(< MapAndReportGrayExceptions > b__4)), new CatchDelegate(null, (UIntPtr)ldftn(ExceptionCatcher)));
 }
コード例 #4
0
        // Token: 0x060000D3 RID: 211 RVA: 0x000057CC File Offset: 0x000039CC
        private static int Execute(GrayException.UserCodeDelegate function, string assistantName)
        {
            Exception exception = null;

            AssistantsRpcServer.Tracer.TraceDebug <string>(0L, "Executing the RPC request for assistant {0}.", assistantName);
            try
            {
                GrayException.MapAndReportGrayExceptions(delegate()
                {
                    try
                    {
                        function();
                    }
                    catch (MapiExceptionMdbOffline exception3)
                    {
                        exception = exception3;
                    }
                    catch (MapiExceptionNotFound exception4)
                    {
                        exception = exception4;
                    }
                    catch (MailboxOrDatabaseNotSpecifiedException exception5)
                    {
                        exception = exception5;
                    }
                    catch (UnknownAssistantException exception6)
                    {
                        exception = exception6;
                    }
                    catch (UnknownDatabaseException exception7)
                    {
                        exception = exception7;
                    }
                    catch (TransientException exception8)
                    {
                        exception = exception8;
                    }
                });
            }
            catch (GrayException exception)
            {
                GrayException exception9;
                exception = exception9;
            }
            catch (Exception exception2)
            {
                exception = exception2;
                ExWatson.SendReportAndCrashOnAnotherThread(exception2);
            }
            if (exception != null)
            {
                return(AssistantsRpcServer.LogExceptionAndGetHR(exception, assistantName));
            }
            return(0);
        }
コード例 #5
0
 // Token: 0x06000B83 RID: 2947 RVA: 0x0002F05C File Offset: 0x0002D25C
 protected void ExecuteWithExceptionHandler(GrayException.UserCodeDelegate callback)
 {
     try
     {
         GrayException.MapAndReportGrayExceptions(callback);
     }
     catch (GrayException exception)
     {
         this.InternalFailureCallback(exception, null);
     }
 }
コード例 #6
0
 public static void SendWatsonReportsForGrayExceptions(GrayException.UserCodeDelegate tryCode, Func <Exception, bool> ignoreFunc)
 {
     GrayException.MapAndReportGrayExceptions(tryCode, delegate(Exception exception)
     {
         if (ignoreFunc(exception))
         {
             ExWatson.SetWatsonReportAlreadySent(exception);
             return(true);
         }
         return(GrayException.IsGrayException(exception));
     });
 }
コード例 #7
0
 public static void SendWatsonReportsForGrayExceptions(GrayException.UserCodeDelegate tryCode)
 {
     GrayException.MapAndReportGrayExceptions(tryCode, delegate(Exception exception)
     {
         if (OwaDiagnostics.CanIgnoreExceptionForWatsonReport(exception))
         {
             ExWatson.SetWatsonReportAlreadySent(exception);
             return(true);
         }
         return(GrayException.IsGrayException(exception));
     });
 }
コード例 #8
0
 private static void PerformRegistryOperation(string languagePackType, string culture, GrayException.UserCodeDelegate function)
 {
     try
     {
         function();
     }
     catch (SecurityException innerException)
     {
         string regKeyPath = UmLanguagePack.GetRegKeyPath(true, languagePackType);
         throw new RegistryInsufficientPermissionException(regKeyPath, culture, innerException);
     }
 }