
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ничего, в MQL нет возможности определить тип объекта в рантайме. Или надо создавать специальный тип для таких случаев с полем, где будет прописан ID типа.
Кстати, обсуждаем тему "защитное программирование". Хорошая книга есть у Стива Макконнелла - "Совершенный код".
Из содержания, Глава 8.
Надувные трапы и желеты - это уже инструменты ликвидации последствия крушения, а не средство предотвращения крушения. Если крыло отвалилось - остается надеяться только на жилет и противоакулий свисток, это я и предложил делать - следящий эксперт, который и будет заниматься ликвидацией последствия.
Я не говорю, что исключения вовсе не нужны, нужны. Но Алексей привел пример, когда игнорируются битые данные, это значит он не хочет анализировать все данные, а просто игнорировать их, если машина не сможет их "переварить". За это я же и говорю - что всё что касается торговой логики, исключения противопоказаны. А для всего остального - полезная вешь, я не отрицаю этого.
Ну в аналогии, крушение программы тоже происходит при делении на ноль а исключения позволяют программ не вылететь а попытаться разрулить аварийную ситуацию.
Ничего, в MQL нет возможности определить тип объекта в рантайме. Или надо создавать специальный тип для таких случаев с полем, где будет прописан ID типа.
Ситуация с нулём не разруливаемая. В знаменателе в принципе не должен оказаться 0, если это не предусмотрено логикой программы (в качестве замедленной бомбы какой нибудь, вредительства).
Вообще то в аппаратной части любого процессора есть специальное прерывание аппаратно активизируемое при делении на ноль. Андрей, допускаю ты мог этого не знать, видимо отсюда такие выводы.
И обработка исключительной ситуации как раз заключается в перехвате этого события и разруливании.
т.е. в итоге программа может обработать и разрулить в том числе последствия деления на ноль. Ну разумеется идеально, когда знаменатель предварительно проверяется.
Разве? К примеру.
Я именно об этом и написал, повторю - Или надо создавать специальный тип для таких случаев с полем, где будет прописан ID типа.
Теперь смотрим в
{
public:
//--- method of identifying the object
virtual int Type(void) const { return(TYPE_FLOAT); }
В классе CArrayFloat просто возвращается значение TYPE_FLOAT из перечисления ENUM_DATATYPE.
А в С++ можно вытянуть из экземпляра класса так называемые метаданные, это его тип, название типа и кое-что еще. А в шарпе вообще можно душу из переменной класса вынуть, вплоть до всех публичных методов. А тут обычный костыль.
утверждение неверно в корне!
Вообще то в аппаратной части любого процессора есть специальное прерывание аппаратно активизируемое при делении на ноль. Андрей, допускаю ты мог этого не знать, видимо отсюда такие выводы.
И обработка исключительной ситуации как раз заключается в перехвате этого события и разруливании.
т.е. в итоге программа может обработать и разрулить в том числе последствия деления на ноль. Ну разумеется идеально, когда знаменатель предварительно проверяется.
Я именно об этом и написал, повторю - Или надо создавать специальный тип для таких случаев с полем, где будет прописан ID типа.
Теперь смотрим в
{
public:
//--- method of identifying the object
virtual int Type(void) const { return(TYPE_FLOAT); }
В классе CArrayFloat просто возвращается значение TYPE_FLOAT из перечисления ENUM_DATATYPE.
А в С++ можно вытянуть из экземпляра класса так называемые метаданные, это его тип, название типа и кое-что еще. А в шарпе вообще можно душу из переменной класса вынуть, вплоть до всех публичных методов. А тут обычный костыль.
утверждение неверно в корне!
Вообще то в аппаратной части любого процессора есть специальное прерывание аппаратно активизируемое при делении на ноль. Андрей, допускаю ты мог этого не знать, видимо отсюда такие выводы.
И обработка исключительной ситуации как раз заключается в перехвате этого события и разруливании.
т.е. в итоге программа может обработать и разрулить в том числе последствия деления на ноль. Ну разумеется идеально, когда знаменатель предварительно проверяется.
всё что делает программа - задумано не спроста, не так ли? понравится ли тебе, если МТ будет за тебя принимать решения в критических ситуациях? - не думаю. хотя метаквоты вполне могли бы включить подобные механизмы в работе ex программ, но они этого не делают и поступают правильно.