AwbUpdater.ErrorHandler.HandleKnownExceptions C# (CSharp) Method

HandleKnownExceptions() private static method

private static HandleKnownExceptions ( Exception ex ) : bool
ex System.Exception
return bool
        private static bool HandleKnownExceptions(Exception ex)
        {
            // Tools.WriteDebug("HandleKnownExceptions", ex.StackTrace);
            // invalid regex - only ArgumentException, without subclasses
            if (ex is ArgumentException &&
                (ex.StackTrace.Contains("System.Text.RegularExpressions") ||
                 ex.ToString().StartsWith(@"System.ArgumentException: parsing")))
            {
                MessageBox.Show(ex.Message, "Invalid regular expression",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            //Unsupported Culture, possibly bn-BD
            else if (ex is ArgumentException && Thrower(ex) == "CultureTableRecord.GetCultureTableRecord")
            {
                MessageBox.Show(
                    "Microsoft unfortunately don't support your locale culture. Please try a more common one",
                    "Unsupported culture");
            }
            // network access error
            else if (ex is System.Net.WebException || ex.InnerException is System.Net.WebException)
            {
                // if AWB starts up offline we'll hit here, so provide clear network related message
                string msg = ex.Message.StartsWith(@"The type initializer for") ? ex.InnerException.Message : ex.Message;

                MessageBox.Show(msg, "Network access error",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            // out of memory error
            else if (ex is OutOfMemoryException)
            {
                MessageBox.Show(ex.Message, "Out of Memory error",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            // disk writer error / full
            else if (ex is System.IO.IOException ||
                     ex is ConfigurationErrorsException && ex.InnerException != null &&
                     ex.InnerException.InnerException is System.IO.IOException)
            {
                MessageBox.Show(ex.Message, "I/O error",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            // BackGroundRequest Abort called as user pressed stop, this is OK
            else if (ex is ThreadAbortException &&
                     (ex.StackTrace.Contains("AutoWikiBrowser.MainForm.ProcessPage") ||
                      ex.StackTrace.Contains("Parsers.TagOrphans")))
            {
                return true;
            }
            else
            {
                return false; // We didn't handle the exception
            }

            return true; // We handled the exception
        }