Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кстати, в качестве альтернативы исключениям можно было бы реализовать при желании просто обработчик события OnError, типа так:
Кстати, в качестве альтернативы исключениям можно было бы реализовать при желании просто обработчик события OnError, типа так:
Думаю, что это удовлетворило меня, хоть и не полностью, т.к. понадобилось бы объявлять нужные переменные глобальными, чтобы их было видно в OnError.
Но я все-равно был бы рад этому. Нужно просто иногда выловить ошибку, после обнаружения и устранения проблемы можно было бы опять спрятать их в локальные.
Как бы донести эту мысль про OnError до Рената?
Думаю, что это удовлетворило меня, хоть и не полностью, т.к. понадобилось бы объявлять нужные переменные глобальными, чтобы их было видно в OnError.
Но я все-равно был бы рад этому. Нужно просто иногда выловить ошибку, после обнаружения и устранения проблемы можно было бы опять спрятать их в локальные.
Как бы донести эту мысль про OnError до Рената?
Принципиально нет. Если программа нарвалась на критическую ошибку, то ее судьба - только на выгрузку.
У каждой важной функции есть коды возврата, все детально расписано. Поэтому разработчик не теряет контроля над своей программой.
ps: удивительно конечно даже после четкой выдачи места неправильной индексации слышать "мало даете!"
Пользуйте вcтроенную проверку кода, те же утверждения (assertions).
Ну, тут ситуация другая. У человека происходит спорадическая ошибка (воспроизводится редко при непонятных условиях). У него и так эксперт вываливается. Если он ассерт поставит - вывалится ровно так же, но не сразу, и не будет понятно почему. Поэтому я и прошу, чтоб он код показал.
И до кучи, может быть было бы полезно, если бы такие ошибки, приводящие к остановке скрипта, сопровождались не просто указанием места, но и полным контекстом: стек вызова, содержимое переменных и т.д. Можно сделать такой вывод опциональным с помощью директивы препроцессора, т.е. указать уровень диагностики ошибок: по умолчанию оставить как есть, но чтоб была возможность уподробить.
Ну, тут ситуация другая. У человека происходит спорадическая ошибка (воспроизводится редко при непонятных условиях). У него и так эксперт вываливается. Если он ассерт поставит - вывалится ровно так же, но не сразу, и не будет понятно почему. Поэтому я и прошу, чтоб он код показал.
И до кучи, может быть было бы полезно, если бы такие ошибки, приводящие к остановке скрипта, сопровождались не просто указанием места, но и полным контекстом: стек вызова, содержимое переменных и т.д. Можно сделать такой вывод опциональным с помощью директивы препроцессора, т.е. указать уровень диагностики ошибок: по умолчанию оставить как есть, но чтоб была возможность уподробить.
Полный контекст можно отследить при дебагинге.
Другое дело что спорадические ошибки нужно отлавливать на определённых участках.
И вот тут всплывает потребность запускать дебагер на истории.
Проблема старая, много раз поднималась, но пока воз и ныне там.
Ну, тут ситуация другая. У человека происходит спорадическая ошибка (воспроизводится редко при непонятных условиях). У него и так эксперт вываливается. Если он ассерт поставит - вывалится ровно так же, но не сразу, и не будет понятно почему. Поэтому я и прошу, чтоб он код показал.
95% спорадических ошибок связаны с ошибками инициализации, либо отсутствием таковой. Так что фрагмент кода не поможет, а весь он не даст, ибо паранойя. ;-)
Причину следует искать очень далеко от места проявления, а афтару влом - проще потребовать расстрела для разработчиков. Это ведь наверняка поможет.
// Ведь правда поможет, falkov ? :)
Полный контекст можно отследить при дебагинге.
Другое дело что спорадические ошибки нужно отлавливать на определённых участках.
И вот тут всплывает потребность запускать дебагер на истории.
Проблема старая, много раз поднималась, но пока воз и ныне там.
Ну, тут ситуация другая. У человека происходит спорадическая ошибка (воспроизводится редко при непонятных условиях). У него и так эксперт вываливается. Если он ассерт поставит - вывалится ровно так же, но не сразу, и не будет понятно почему. Поэтому я и прошу, чтоб он код показал.
Код нет смысла показывать, потому что там достаточно сложная логика, нафик кому надо разбираться в ней, а сам участок возникновения ошибки простой, но он ничего не дает для поиска ошибки, там функция на полэкрана чистого кода. Каждая переменная проверяется на пределы снизу и сверху. Если переменная выходит за эти пределы, то выводится сообщение с перечислением всех переменных и их значений. Конечно, где-то ошибка, но вот где!! Напомню, что это случается раз или два в неделю. Советник пашет круглосуточно.
И потом, меня интересует не только данный конкретный случай, хотя у меня это первый раз.
И до кучи, может быть было бы полезно, если бы такие ошибки, приводящие к остановке скрипта, сопровождались не просто указанием места, но и полным контекстом: стек вызова, содержимое переменных и т.д. Можно сделать такой вывод опциональным с помощью директивы препроцессора, т.е. указать уровень диагностики ошибок: по умолчанию оставить как есть, но чтоб была возможность уподробить.
А вот так было бы здорово! Полный контекст, конечно, позволил бы мне найти ошибку! Мне и нужно, чтобы в момент ошибки, перед вылетом эксперта, посмотреть на переменные.
Уважаемый Ренат! Может, можно так сделать?
95% спорадических ошибок связаны с ошибками инициализации, либо отсутствием таковой. Так что фрагмент кода не поможет, а весь он не даст, ибо паранойя. ;-)
Причину следует искать очень далеко от места проявления, а афтару влом - проще потребовать расстрела для разработчиков. Это ведь наверняка поможет.
// Ведь правда поможет, falkov ? :)
Супер! Кажется, это должно помочь! :)
Инициализацию делаю тупо ВЕЗДЕ И ВСЕГДА! Даже, если через пару строк присваиваю значение переменной. Просто установил для себя железное правило - при объявлении переменной тупо ее инициализировать нулем или пустой строкой :)
Про паранойю абсолютно точно!
Метадрайвер, ты Шаман!