-
- Вот. Место с иключениями в try выделил символами "<--------------"... POV(4609 знак., 06.10.2010 15:55 - 15:57)
- (1) Проверил бы таки v!=0. (2) float замените на double - на PC будет и быстрее и глюков меньше. - Kit(06.10.2010 22:54)
- Почитай про исключения, деление на ноль не вызывает с++ exception. Смотри можно ли включить обработку SEH эксепшенов в своем компиляторе. - vanner(06.10.2010 18:48)
- Посмотрел - вызывает. - POV(07.10.2010 14:16)
- Обрабатывать такие вещи через исключения -- скорей не правильно. Для этого есть нечисла (если есть). - fk0(07.10.2010 14:29)
- Повторюсь "возможно ли прерывании процедуры по вываливанию в catch?". Больше мне ничего ненужно. - POV(07.10.2010 14:45, ссылка)
- Обрабатывать такие вещи через исключения -- скорей не правильно. Для этого есть нечисла (если есть). - fk0(07.10.2010 14:29)
- Посмотрел - вызывает. - POV(07.10.2010 14:16)
- кстати, непонятно зачем вот этот говнокод? ya(274 знак., 06.10.2010 17:37, )
- Можно было десятком разных способов. Лучшего тут нет. Как приятнее, таки сделал. Это копи-паст из другого проекта для МК, а там intervalStability был константой. - POV(07.10.2010 08:28)
- для константы это даёт прирост скорости, поскольку константа определяется на этапе компиляции и будет вставлено уже посчитанное значение. В случае с переменной получите снижение производительности, поскольку умножаться будет каждый раз, и здесь koyodza(189 знак., 07.10.2010 11:36)
- Увлекаться безопасностью кода вредно. Видел как-то исходник профессиональный - КАЖДАЯ строчка в try...catch. Ну к чему такие загоны? - POV(07.10.2010 11:57)
- обычно студентам с таким вот ЧСВ рекомендуют попрограммировать собственный кардиостимулятор. Или гидравлический пресс с обязательной практикой в течении месяца на нём - koyodza(07.10.2010 12:46)
- При чём тут ЧСВ. Каждый сам для себя решает какова степень безопасности кода нужна. И очень всё это зависит от тестирования софта. Если оно исчерпывающе, а за свой софт я могу быть в этом уверен, то советы про говнокод можно
засунуть в.. POV(23 знак., 07.10.2010 13:12 - 14:10)- Ну что-же Вы так легко ведетесь на провокацию...:) Нравится им критиковать - ну пусть критикуют, раз по делу сказать ничего не могут, жалко что-ли? - Kit(07.10.2010 14:04)
- "в сортах говна не разбираюсь" (с) не моё - koyodza(07.10.2010 14:24)
- Исчерпытающее тестирование софта -- это когда на вход подаётся любая возможная последовательность битов, или как? А то бывает тысячи штук работали без сбоев годы, а потом вдруг как... - fk0(07.10.2010 13:43)
- Именно так. - POV(07.10.2010 13:50)
- почему тогда не можете ответить на простой вопрос, если "всё тщательно проверяли"? - koyodza(07.10.2010 14:21, ссылка)
- Ещё одному повторюсь "возможно ли прерывании процедуры по вываливанию в catch?". Не надо мне давать советы по отладке программы. Я это сделю сам. Я хочу понять нет ли подводных косяков, связанных с особенностями компилятора. - POV(07.10.2010 14:46)
- а как по-Вашему вообще работает exception? - koyodza(07.10.2010 14:59)
- Ещё одному повторюсь "возможно ли прерывании процедуры по вываливанию в catch?". Не надо мне давать советы по отладке программы. Я это сделю сам. Я хочу понять нет ли подводных косяков, связанных с особенностями компилятора. - POV(07.10.2010 14:46)
- почему тогда не можете ответить на простой вопрос, если "всё тщательно проверяли"? - koyodza(07.10.2010 14:21, ссылка)
- Именно так. - POV(07.10.2010 13:50)
- Ну что-же Вы так легко ведетесь на провокацию...:) Нравится им критиковать - ну пусть критикуют, раз по делу сказать ничего не могут, жалко что-ли? - Kit(07.10.2010 14:04)
- При чём тут ЧСВ. Каждый сам для себя решает какова степень безопасности кода нужна. И очень всё это зависит от тестирования софта. Если оно исчерпывающе, а за свой софт я могу быть в этом уверен, то советы про говнокод можно
- Если каждая строчка в try - catch , то исходник автоматом становаится непрофессиональным, так же как и в том случае, когда в нем присутствуют макросы #define N3Points intervalStability*intervalStability*intervalStability ya(340 знак., 07.10.2010 12:06, )
- 1. try-catch -- не признак "безопасности". 2. увлекаться вообще вредно. 3. "профессиональные" исходники часто полный говнокод. - fk0(07.10.2010 12:05)
- +1, try-catch это костыль, а не средство безопасности - koyodza(07.10.2010 12:51)
- обычно студентам с таким вот ЧСВ рекомендуют попрограммировать собственный кардиостимулятор. Или гидравлический пресс с обязательной практикой в течении месяца на нём - koyodza(07.10.2010 12:46)
- Увлекаться безопасностью кода вредно. Видел как-то исходник профессиональный - КАЖДАЯ строчка в try...catch. Ну к чему такие загоны? - POV(07.10.2010 11:57)
- для константы это даёт прирост скорости, поскольку константа определяется на этапе компиляции и будет вставлено уже посчитанное значение. В случае с переменной получите снижение производительности, поскольку умножаться будет каждый раз, и здесь koyodza(189 знак., 07.10.2010 11:36)
- ы-ы-ы а говнокод-то небезопасный, хотя в данном применении работает. Скобочки надо расставлять - koyodza(06.10.2010 17:48)
- Да, знатно было бы на это N3points, к примеру, что-то поделить. - ReAl(06.10.2010 22:59)
- Можно было десятком разных способов. Лучшего тут нет. Как приятнее, таки сделал. Это копи-паст из другого проекта для МК, а там intervalStability был константой. - POV(07.10.2010 08:28)
- intervalStability определено? - Vit(06.10.2010 17:24)
- Конечно. - POV(07.10.2010 08:26)
- всё-таки проверь, чему равно v - Vit(07.10.2010 09:35)
- всмысле тот, который в дефайне. препроцессор вроде как не знает, что переменная такая есть. а то деление на ноль обеспечено - Vit(06.10.2010 17:54)
- да, странный конечно способ использовать имя переменной в дефайнах чуть далее в программе. намеренная обфускация или...? intervalStability и не встречается вовсе дальше дефайнов. он вообще нужен? - Snaky(07.10.2010 09:56 - 10:00)
- не о том речь. препроцессор работает раньше компилятора и пытается считать всё, что можно посчитать. если литерал такой не объявлен со значением, то если препроцессор в этом месте таки выполняет арифметические действия, а не просто подстановку Vit(45 знак., 07.10.2010 10:50)
- я об этом и говорю. просто старался потоньше намекнуть - а то POV обидчивый :> - Snaky(07.10.2010 12:17)
- Я вполне себе параллельный попыткам уколоть. Просто на вопрос "возможно ли прерывании процедуры по вываливанию в catch?" столько херни наговорено не по делу. Кто просто потрепаться - пусть себе ветку отдельную делает. - POV(07.10.2010 13:52)
- Дык по факту v == 0 или нет? - Vit(07.10.2010 13:53)
- не проверял.я не на объекте сейчас, нет возможности проверить - POV(07.10.2010 14:02)
- ??? Vit(294 знак., 07.10.2010 14:10)
- не годится: у него N3point собран не из констант, а из переменных. Посмотри внимательно - koyodza(07.10.2010 14:22)
- :) тебе фе от AL - Vit(07.10.2010 14:24)
- а шо такое? - koyodza(07.10.2010 14:26)
- проверь Vit(90 знак., 07.10.2010 14:28)
- ГОВНОКОД. Это та причина, почему вместо const int вообще следует макросы. - fk0(07.10.2010 15:40)
- Сам проверь: ya(72 знак., 07.10.2010 14:37, )
- упс. и ноль и неноль. на разных компилерах. пошёл за пеплом;) Vit(32 знак., 07.10.2010 15:25)
- ну, проверил. Сразу и padlavil. И чо? - koyodza(07.10.2010 14:29)
- проверь Vit(90 знак., 07.10.2010 14:28)
- а шо такое? - koyodza(07.10.2010 14:26)
- :) тебе фе от AL - Vit(07.10.2010 14:24)
- Вообще это была похоже флуктуация билдера. Неожиданно он начал вылетать на строчке ADOConnection1->CommitTrans(). Перегрузился - всё работает. И функция не прерывается. - POV(07.10.2010 14:16)
- :) ты так ничего и не понял. деление на ноль у тебю осталось. - Vit(07.10.2010 14:19)
- Осталось. И бог с ним. Я его в try запулил. Всё работает. Хочу понять почему ИНОГДА пересает работать. Вопрос был - не из-за этого ли деления на 0? Т.к. это единственное спорное место в коде. - POV(07.10.2010 14:22 - 14:25)
- Вообще, исключение по делению на ноль, это совсем не тоже самое, что и исключение по throw. Деление на ноль сперва видит вин, а потом уже он рассказывает программе, какая у нее беда приключилась. А обычный throw - это без участия вин. AlexBi(317 знак., 07.10.2010 17:11)
- "единственное спорное место" :=D валяюсь - koyodza(07.10.2010 14:25)
- Не попади под каток. - POV(07.10.2010 14:26)
- оно там всегда, а не только когда intervalStability равно нулю - Vit(07.10.2010 14:23)
- Осталось. И бог с ним. Я его в try запулил. Всё работает. Хочу понять почему ИНОГДА пересает работать. Вопрос был - не из-за этого ли деления на 0? Т.к. это единственное спорное место в коде. - POV(07.10.2010 14:22 - 14:25)
- :) ты так ничего и не понял. деление на ноль у тебю осталось. - Vit(07.10.2010 14:19)
- не годится: у него N3point собран не из констант, а из переменных. Посмотри внимательно - koyodza(07.10.2010 14:22)
- ??? Vit(294 знак., 07.10.2010 14:10)
- не проверял.я не на объекте сейчас, нет возможности проверить - POV(07.10.2010 14:02)
- Дык по факту v == 0 или нет? - Vit(07.10.2010 13:53)
- Я вполне себе параллельный попыткам уколоть. Просто на вопрос "возможно ли прерывании процедуры по вываливанию в catch?" столько херни наговорено не по делу. Кто просто потрепаться - пусть себе ветку отдельную делает. - POV(07.10.2010 13:52)
- Ага, конечно, так и есть) Какой он оказывается умный, этот ваш препроцессор! - ya(07.10.2010 11:21, )
- препроцессор выолняет вычисления только если значение известно на этапе компиляции. В данном случает оно неизвестно. - ya(07.10.2010 11:43, )
- не только Vit(225 знак., 07.10.2010 12:48 - 12:50)
- препроцессор выолняет вычисления только если значение известно на этапе компиляции. В данном случает оно неизвестно. - ya(07.10.2010 11:43, )
- я об этом и говорю. просто старался потоньше намекнуть - а то POV обидчивый :> - Snaky(07.10.2010 12:17)
- не о том речь. препроцессор работает раньше компилятора и пытается считать всё, что можно посчитать. если литерал такой не объявлен со значением, то если препроцессор в этом месте таки выполняет арифметические действия, а не просто подстановку Vit(45 знак., 07.10.2010 10:50)
- да, странный конечно способ использовать имя переменной в дефайнах чуть далее в программе. намеренная обфускация или...? intervalStability и не встречается вовсе дальше дефайнов. он вообще нужен? - Snaky(07.10.2010 09:56 - 10:00)
- Конечно. - POV(07.10.2010 08:26)
- мда... странно... Но я бы для начала весь код из обработчика таймера в отдельную процедурку поместил, без __fastcall, и посмотрел бы что получится - ya(06.10.2010 16:23, )
- Вот. Место с иключениями в try выделил символами "<--------------"... POV(4609 знак., 06.10.2010 15:55 - 15:57)