С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36

Как отловить сообщение об ошибке?

25.01.2011, 15:57. Показов 1841. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я хочу выдать свое сообщение, если происходит ошибка в программе.
Но просто поставить On error goto err в процедуру main не получается.
Visual Basic
1
2
3
4
5
6
7
Sub Main()
   On Error GoTo err
   frmMain.Show 1
   Exit Sub
err:
   MsgBox 'Err'
End Sub
При возникновении ошибки, переход на err не происходит.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2011, 15:57
Ответы с готовыми решениями:

Как отловить сообщение об ошибке в WebBrowser
Возможно ли отследить сообщение о неправильном вводе логина и пароля? Через текстбоксы ввожу данные и передаю их в WebBrowser, как...

Как расшифровать сообщение об ошибке
Добрый день. Расскажите, как понять вывод сообщений об ошибке? count_obj.cpp:8:21: error: ISO C++ forbids in-class initialization of...

Сообщение об ошибке - как убрать ???
Добрый день. У меня такой вопрос - в программе VB в случае ошибки при выполнении выскакивает окно с сообщениме об ошибке - после чего его...

10
shady
25.01.2011, 16:09
а зачем это надо? ошибки вообще-то надо еще при программировании все исключить...
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
25.01.2011, 16:21
Все не исключить Я попробовал сейчас, вроде бы перехватывается ошибка, во всяком случае, выдалось сообщение о том, что MDI форму модально не открыть. Это та самая Sub Main, что выполняется при старте проекта? А в свойствах проекта указано, что надо с Main начинать?
0
shady
25.01.2011, 16:30
ошибки надо ловить в главной форме в general
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
25.01.2011, 16:47
>ошибки надо ловить в главной форме в general
Независимо от того, где они произошли? Непонятно.

В данном случае, как я подозреваю, произошло следующее - создана процедура Main, но не указана в качестве стартового объекта, там осталась frmMain, которая спокойно открывается, обходя выполнение Sub Main. Я прав?
0
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
25.01.2011, 16:49  [ТС]
Дело не в самой функции Main, а в принципе.
У меня вызывается форма с кнопками и процедурами. И мне нужно, чтобы при завершении работы программа выполняла определенные действия. Это сделать просто - делать это в процедуре form_terminate. Но когда возникает ошибка, эта процедура не вызывается. Можно отлавливать ошибки во всех процедурах, но хочется повесить обработчик ошибок не на каждую процедуру, а на все скопом. Первое, что пришло в голову - в функции Main прописать перехват ошибки. Но это не сработало.
0
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
25.01.2011, 16:51  [ТС]
>ошибки надо ловить в главной форме в general
Это как ?
0
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
25.01.2011, 16:55  [ТС]
> А в свойствах проекта указано, что надо с Main начинать?
Да, я указывал.
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
25.01.2011, 16:57
обработчики советую вставлять во все свои функции, а использовать только одну функцию обработки ошибки можно, конечно, но не всегда оправдано, так как если проект большой, то данная функция будет сильно раздута
0
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
25.01.2011, 17:07
А, понял, ошибка происходит в форме, которая открывается из Sub Main. В таком случае ошибка в форме и останется, там же должна перехватываться и обрабатываться. Вот если из процедуры вызвать другую процедуру, и в ней произойдет ошибка, а обработчика ошибок в вызываемой процедуре нет, тогда ошибка будет перехвачена в вызывающей процедуре. А открытие формы - это другое.
0
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 36
25.01.2011, 17:13  [ТС]
Похоже на то. Все-таки придется вставлять вызов необходимой процедуры в перехватчики ошибок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2011, 17:13
Помогаю со студенческими работами здесь

Как сделать сообщение об ошибке?
Всем привет ! Как сделать сообщение об ошибке если ввели число не от 1 до 7 Sub Вывод() Dim s(11) As Variant Dim s1(11) As Variant ...

Как вывести сообщение об ошибке
Как для этой case "er": throw new Exception( "Ошибка в строке ввода"); написать обработчик ошибок. switch (opCommand) ...

Как отловить сообщение MM_WIM_DATA?
Пишу программу для работы с микрофоном. Использую функции WinAPI waveInOpen, waveInPrepareHeader, waveInAddBuffer и т.д. Данные получаю. Но...

Как отловить сообщение MM_WIM_DATA?
Привет всем. Как мне узнать отправлено ли сообщение мултимедийной подсистемой моему окну о заполнении буфера, чтобы обработать этот...

Как перехватить и обработать сообщение об ошибке?
Помогите перехватить и обработать сообщение об ошибке??? Задача состоит в следующем: В процессе обработки другого файла я через VBA...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru