Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Опросы > возбуждение исключений


Автор: Bose 26.10.2006, 14:03
сабж

Автор: Snowy 26.10.2006, 14:06
Использую AssErt. Удобно в отладке. 
Для компиляции релиза - отключаю в свойствах проекта или компиляцией проекта с ключём C-.

Автор: Bose 26.10.2006, 14:44
Snowy, а встречаются ли у тебя в тексте такие конструкции:

Код

if SomeThingMustBeAlwaysTrue then
  DoSomethingMustBeDone
else
  assert (False, "Something goes wrong");

 smile 


Автор: Snowy 26.10.2006, 14:58
Нет. Для этого есть raise. А тут не так.
Код

  assert (not SomeThingMustBeAlwaysTrue, "Something goes wrong");
  DoSomethingMustBeDone

Автор: Bose 26.10.2006, 15:17
Цитата(Snowy @  26.10.2006,  14:58 Найти цитируемый пост)
 assert (not SomeThingMustBeAlwaysTrue, "Something goes wrong");  
DoSomethingMustBeDone


Интересный вариант. Я о таком и не думал. Видимо сказывается привычка думать ветвлениями if..else..

Автор: Sunvas 26.10.2006, 15:55
Использую аналогично как и Snowy.  smile 

Автор: Innuendo 30.10.2006, 14:57
Использую watchs и debugger'ы =) Но только после того, как самому через исключения не получается отловить проблему.

Сразу исключения нигде не пишу, пишу, когда при тесте что-то не работает, тогда пишу в каждом месте, чтоб понять что именно не работает=) и потихоньку отсеиваю их

Автор: LSD 30.10.2006, 15:10
В Java assert-ы отключаются в рантайме.

Автор: Exception 1.11.2006, 12:36
В .NET при компиляции убирается вызов любого метода, помеченного атрибутом Conditional(константа_компиляции), если эта константа не определена. Например, при компиляции в режиме Debug, этот код вызовет ошибку и напишет об этом в консоль:
Код
[Conditional("DEBUG")]
void Log(Exception ex)
{
    Console.WriteLine(ex);
}
// ...
try
{
    Assert.IsTrue(false);
}
catch (Exception ex)
{
    Log(ex);
}
Что самое смешное, при конфигурации Release метод Assert.IsTrue() тоже не будет вызван, поскольку он, как и Log(), помечен атрибутом Conditional.
P.S. Это тем явцам, что говорили, будто атрибуты - отстой :) .
P.P.S. Да шучу, шучу.

Добавлено @ 12:48 
Касательно исключений: выбрасываю и ловлю их почти везде. Конечно, это выглядит несколько громоздко, но зато, чтобы определить причину ошибки, достаточно посмотреть цепочку исключений.

Автор: GoodBoy 1.11.2006, 13:03
Exception, ты возбудился???  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)