- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
int code = 300;
if (
ex is Exceptions.ApiErrorNotFoundException ||
ex is Exceptions.CardAuthHistoryNotFoundException ||
ex is Exceptions.CardNotFoundException ||
ex is Exceptions.CardStateNotFoundException ||
ex is Exceptions.CurrencyNotFoundException ||
ex is EmailTemplateNotFoundException ||
ex is Exceptions.ExchangeRateNotFoundException ||
ex is Exceptions.InfoBlockNotFoundException ||
ex is InvoiceNotFoundException ||
ex is Exceptions.InvoiceStateNotFoundException ||
ex is Exceptions.ManagerNotFoundException ||
ex is Exceptions.PasswordRecoveryNotFoundException ||
ex is Exceptions.PayCommissionNotFoundException ||
ex is Exceptions.PaymentStateNotFoundException ||
ex is Exceptions.PaymentTypeNotFoundException ||
ex is Exceptions.PaySystemNotFoundException ||
ex is Exceptions.PersonNotFoundException ||
ex is Exceptions.SecretWordNotFoundException ||
ex is ShopNotFoundException ||
ex is SiteNotFoundException ||
ex is Exceptions.SysSettingsNotFoundException ||
ex is Exceptions.SysWalletNotFoundException ||
ex is Exceptions.TariffNotFoundException ||
ex is Exceptions.UserNotFoundException ||
ex is Exceptions.UserParamsNotFoundException ||
ex is Exceptions.WorldCurrencyNotFoundException ||
ex is Exceptions.WorldExchangeRateNotFoundException
)
{
code = 504;
}
Dummy00001 18.10.2010 23:23 # 0
мне может самому придется нечто подобное (на С++) наговнокодить скоро....
Stalker 18.10.2010 23:59 # +1
Dummy00001 19.10.2010 00:03 # 0
Stalker 19.10.2010 00:08 # 0
LostPain 19.10.2010 00:10 # 0
А теперь про говнокод. Насколько я понимаю, тип double и тип string никогда не вызовут никакого события, тем более ButtonClick, поэтому из массива их исключаем. Остается один элемент, а зачем тогда массив?
Stalker 19.10.2010 00:16 # 0
Согласен. А как это изобразить в коде?
>тип double и тип string никогда не вызовут никакого события
Не обращаем внимания, это для объёма :)
LostPain 19.10.2010 00:21 # 0
public static bool TypeInherit(Type T, Type Parent)
{
while (true)
{
if (T == Parent) return true;
if (T == typeof(object)) return false;
T = T.BaseType;
}
}
bober_maniac 19.10.2010 10:35 # 0
T.Equals(Parent) || T.IsSubclassOf(Parent)
LostPain 19.10.2010 11:25 # 0
Помечу для себя, что ты знаток шарпов!
bober_maniac 19.10.2010 13:33 # 0
Я очень не люблю людей, которые не умеют пользоваться поиском по документации.
eval_2009 21.10.2010 23:16 # +3
Обычно лучше работает Type.IsAssignableFrom
ибо оно поддерживает и интерфейсы то же.
abatishchev 16.11.2010 15:22 # 0
bober_maniac 19.10.2010 10:36 # −1
bober_maniac 19.10.2010 15:54 # +1
Тогда достаточно было бы сделать одну проверку по родителю.
mozg_raka 19.10.2010 15:58 # +2
try { } catch (ServerItemNotFoundException ex) { ... }
bober_maniac 20.10.2010 09:59 # +1
Dummy00001 19.10.2010 16:06 # −2
постоянно перехуячивать иерархии наследования что бы из еще одной функции обработать ошибку - это говно.
bober_maniac 20.10.2010 10:00 # +1
В конце концов, исключения могут реализовывать интерфейсы. Делайте IServerItemNotFound {} - получаете интерфейс-маркер. По маркерам можно черта лысого отследить.
Dummy00001 20.10.2010 12:53 # 0
тем более что изменения иерархии наследования на средних/крупных проектах в поздних фазах разработки просто запрещено - как раз тогда когда такие проблемы и всплывают.
то что нечто тривиальное типа "if (rc == ECODE1 || rc == ECODE2)" не имеет тривиального аналога в эксепшенах IMO есть большое говно на уровне самих языков. очевидно становится в оссобенности тогда когда ошибки нужно реально обрабатывать, а не просто какой тупой мессадж бокс на экран выплевывать.
LostPain 19.10.2010 00:00 # 0
А так это говнохлам. Иногда такого нагромождения в коде не избежать ((
Или кто знает как?
src 22.10.2010 23:33 # +1
вообще от таких конструкций всегда веет поносом отчаянием - дедлайн уж близко, а оно нифига