SendKeys suck
Недавно пришлось поколупаться в исходном коде класса
SendKeys
. Его отвратительное качество меня просто поразило.
Но самый больший ахуй случился когда я там наткнулся на следующий WTF:
[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 (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 } }
Если в файле конфигурации приложения отсутствует настройка SendKeys
- value.Equals
вываливает NullReferenceException
, который
успешно тушится блоком catch {}
. Это пиздец, господа. Класс писал студент
в качестве тестового задания для Microsoft? Не удивительно, что во фреймворке столько
говнокода, ведь студента видимо приняли.
2 коммент.:
В комменте упоминается обратная совместимость - возможно поэтому тушится.
NullReferenceException здесь - однозначно тупейший ляп программиста.
Отправить комментарий