1. C# / Говнокод #15860

    +126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
    private static void LoadSendMethodFromConfig()
    {
        if (!sendMethod.HasValue)
        {
            sendMethod = SendMethodTypes.Default;
    
            try
            {
                // read SendKeys value from config file, not case sensitive
                string value = System.Configuration.ConfigurationManager.AppSettings.Get("SendKeys");
    
                if (string.IsNullOrEmpty(value))
                    return;
    
                if (value.Equals("JournalHook", StringComparison.OrdinalIgnoreCase))
                    sendMethod = SendMethodTypes.JournalHook;
                else if (value.Equals("SendInput", StringComparison.OrdinalIgnoreCase))
                    sendMethod = SendMethodTypes.SendInput;
            }
            catch { } // ignore any exceptions to keep existing SendKeys behavior
        }
    }

    Сорцы дотнета. Игнорируем любые исключения. Возмущение компилятора отключаем атрибутом. Как мило!

    Пруф: http://referencesource.microsoft.com/#System.Windows.Forms/ndp/fx/src/winforms/Managed/System/WinForms/SendKeys.cs#323f3884113aa0ae#references

    Цимес ещё и в том, что раньше в коде не было строк:

    if (string.IsNullOrEmpty(value))
    return;

    То есть NullReferenceException тоже глушилось.

    ЗЫ: пришлось пароль вспоминать, чтобы запостить. А то лень было логиниться, из под геста изредка комментил.

    Запостил: koodeer, 28 Апреля 2014

    Комментарии (2) RSS

    • Кодер что-то я не въезжаю, sendMethod будет равно SendMethodTypes.Default, что с новым условием, что без него
      Ответить
    • cleaned
      Ответить

    Добавить комментарий