- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
internal static class ExceptionHelper
{
public static void Throw()
{
Throw("Syntax error.");
}
public static void Throw(string msg)
{
new Exception(msg);
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+122
internal static class ExceptionHelper
{
public static void Throw()
{
Throw("Syntax error.");
}
public static void Throw(string msg)
{
new Exception(msg);
}
}
Просто и красиво! Архитектурное решение - архитектор жжет!
SmackMyBitchUp 06.12.2011 11:23 # 0
Хотя если прикинуть, то такой код еще и запутает программиста-пользователя данного класса. Или нет?
guest 06.12.2011 22:42 # 0
автор кода тоже.
Лучше вообще не использовать исключения чем использовать их так.
Дорогие дети, сегодня мы с вами познакомимся с азами ООП. В мире ООП принято делать разные классы для разных задач. По этому умные дяди кидают разные исключения в разных ситуациях, что бы другие умные дяди могли их ловить с помощью catch.
А конструкция "new Exception" как-бы говорит нам: "привет, меня написал тупой даун, не знающий основ языка, на котором он пишет, возможно он пришел из мира PHP -- там это принято"
>>но лишний вызов метода не порадовал
о, да!
лишний метод в C#.NET это драматичный факап по перформансу. Настоящие программисты на C# уменьшают число методов. И классов. И вообще лучше всего всю программу сделать в одном методе, и назвать его doAll, настоящие гуряки так и делают. Ведь .NET и Java и прочие объектно-ориентированные языки со статической типизацией под виртуальные машины для того и изобрели -- что бы писать по-меньше методов.
guest 16.12.2011 00:43 # 0
Если рыть глубже, не существует языка, в котором лишний вызов был бы увеличением производительности, особенно в многозадачной среде, где крутятся десятки процессов. Поэтому каждый второй (может и загнул) вызов сопровождается кэш-промахом со всеми вытекающими..., в принципе даже переход по условию приводит к подобной ситуации, поэтому максимальная производительность не может быть в многозадачной среде. Долой все многозадачки!!! Да здравствует линейный вычислительный процесс!!! Кошмар какой-то!!! А в данном примере... ну и где тут говнокод? По Вашему лучше вызывать стопицот методов Throw("Syntax error.") ? Это почти как default для switch...
roman-kashitsyn 06.12.2011 11:34 # 0
guest 06.12.2011 12:21 # 0
guest 06.12.2011 12:22 # +2
Eugene 06.12.2011 13:08 # +1
Автор наверное хотел использовать код как-то вот так: в методе, у которого тип возвращаемого значения - void? В методе эксепшн создается и сразу теряется.
roman-kashitsyn 06.12.2011 13:12 # 0
Мне вот вообще не понятно, почему может быть лучше чем Скрывать конкретный тип исключения смысла нет. Видимо, врождённая страсть к велосипедам.
Eugene 06.12.2011 13:15 # 0
Воистину!
guest 06.12.2011 19:02 # 0
guest 06.12.2011 19:05 # 0
anmiles 10.12.2011 02:44 # 0
guest 06.12.2011 13:14 # 0
Dummy00001 06.12.2011 14:58 # +1
It is always possible to add another level of indirection.
(c) 1996, IETF.
guest8 09.04.2019 12:18 # −999