Суть автоматической обработки ошибок заключается в том, что при возникновении ошибки на выходе VI исполнение программы может быть остановлено (за диалог отвечает как раз вторая опция):
В вышеприведённом примере мы создаём новую папку, но такая папка уже существует, что и вызывает ошибку 10 (если у вас нет папки Windows на диске с:\ просто запустите этот пример дважды). Поскольку выход примитива CreateFolder не подсоединён, то возникающая ошибка вызывает прерывание выполнения программы.
В следующем примере это дилоговое окно не появится:
В ряде случаев подобные сообщения мешают. Например в вышеприведённом примере теоретически надо проверять код возврата для того, чтобы выяснить причину ошибки — либо папка уже существует, либо её создание невозможно по каким-либо причинам (например, недопустимая буква диска, либо нет прав на создание, либо недопустимые символы в имени и т.п.). При "первых набросках" или прототипировании программы проще отключить мешающие сообщения и не проверять ошибки типа описанной выше (большинство программистов — оптимисты и считают, что после вызова CreateFolder требуемая папка непременно будет создана если её ещё не существует).
Однако на заключительном этапе имеет смысл включить эту опцию и вычистить участки кода, вызывающие "оборванные" ошибки (ну или как минимум обратить внимание на такие места).
Важно также не лениться (вы, конечно, можете просто соединить выход с блишайшей границей цикла или последовательности). Если вы не готовы принять решение о логике обработки какой-то конкретной ошибки немедленно, то лучше сделать SubVI со входом ошибки и подосединить его к выходу ошибки в "проблемном" месте. Внутри этого SubVI вы можете организовать запись в лог-файл или в лог отладки (более детально мы это рассмотрим в другом параграфе). Таким образом вы всегда сможете найти места в программе, где проблема пока не устранена (кстати, это будет работать и в исполняемом приложении).
Интересная статья, спасибо большое!
ОтветитьУдалитьНе хотите её опубликовать у нас на LabVIEW Portal?
www.labviewportal.eu/ru
Спасибо, Павел!
ОтветитьУдалитьОпубликовать конечно можно, почему бы и нет. В каком разделе это будет удобнее сделать? Прямо в форум?
А, Андрей это вы?:-)
ОтветитьУдалитьСразу не узнал - богатым будете)))
Отличное сообщество создали, побольше бы таких!
А написать статью у нас на портале не сложно - заходите на главную, регестрируйтесь, после регистрации слева у вас появится меню, там выбираете пункт - Написать статью. Писать статьи можно в формате Уроки. Можно так же при желании завести свой блог. После публикации статья будет принята к рассмотрению, это увы необходимая мера для защиты от спама. Но можно сделать так - после регистарции свяжитесь со мной по емейл indey@bk.ru - мы снимем для вашего аккаунта это ограничение. Спасибо!
С уважением, Павел.
Андрей, спасибо за статью. Мы на самом деле собираем интересные статьи по LabVIEW. Если у Вас нет желания или возможности разместить её у нас в Портале, то разрешите сделать это мне от Вашего имени, естесственно с ссылкой на оригинал.
ОтветитьУдалитьС уважением, Евгений.
Евгений, спасибо за отклик. Всё, что здесь было или будет написано, Вы можете использовать без каких-либо ограничений в некоммерческих целях. Просто укажите моё авторство и всё. К сожалению у меня времени свободного обычно не бывает, так что если Вы найдёте минутку для размещения, и это принесёт кому-нибудь пользу, то это будет замечательно.
ОтветитьУдалитьСпасибо, Андрей.
Grand Victoria Casino - Mapyro
ОтветитьУдалитьLocated 경상남도 출장안마 near 김천 출장샵 Grand Victoria Casino, we 용인 출장안마 have plenty of casino games including 창원 출장샵 slots, blackjack, poker, bingo, roulette, 의정부 출장샵 video poker, and poker.