С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,590
Записей в блоге: 1

Перехват ошибки

12.10.2009, 22:12. Показов 2169. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Еще вопрос, есть программка, короче много объяснять. Нужно чистить папку от файлов. И вот если она пуста, я так понял я сделал правильно...On Error GoTo ERO.
Но все равно выскакивает два MsgBox. Что нормально очистило и что ошибка. Где у меня в коде ошибка?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub Command8_Click()
 
Log Now & "Чистка папки тарифов" & vbCrLf
 
Label6.Caption = " Содержимое папки тарифов"
 
File4.Path = sGetINI(App.Path & "\armops.ini", "Main", "PATHTAR", "None")
 
File4.Visible = True
 
Dim Push As Long
 
Push = MsgBox("Очистить? В версии выше 6,5 этого уже делать не надо!!!", 49, "Вы уверены?")
 
If Push = 1 Then
        
Dim fso As FileSystemObject
 
  Set fso = New Scripting.FileSystemObject
 
  'On Error GoTo Msg
    
  On Error GoTo ERO
  
  fso.DeleteFile "D:\SKSDATA\GOS\Tar\*.DBF"
  'fso.DeleteFile sGetINI(App.Path & "\armops.ini", "Main", "PATHTAR", "None")
 
 
  MsgBox "Папка тарифов очищена"
    
  Else
   
   MsgBox "Отмена операции", 0, "Выбор"
   
ERO: MsgBox "Папка тарифов уже пуста", 0, "Сообщение"
    End If
    File4.Refresh
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2009, 22:12
Ответы с готовыми решениями:

перехват ошибки
как перехватить оошибку? try IdSMTP1.Connect(); sleep(5000); IdSMTP1.Send(IdMessage1); IdSMTP1.Disconnect; ...

Перехват в DBI ошибки
Использую DBI для подключения к базе. Хочу использовать транзакции. Выключаю autoCommit $dbh->{'AutoCommit'}=0; Выключение...

Перехват ошибки от xlsread
Вызывается функция для чтения данных из файла EXCEL = xlsread(FileNameN, 'I(n)'); В случае если в файле нет листа 'I(n)', то функция...

14
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,946
12.10.2009, 23:52
Цитата Сообщение от DM_AND Посмотреть сообщение
и что ошибка
А какая ошибка выскакивает?
0
1 / 1 / 0
Регистрация: 01.10.2009
Сообщений: 17
13.10.2009, 16:10
попробуй On Error Resume Next
0
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,946
13.10.2009, 16:43
Какой некст? Надо понять что за ошибка. Если все ошибки игнорить то эта прога когда-нибудь и винду удалит между делом
1
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,590
Записей в блоге: 1
14.10.2009, 13:30  [ТС]
Вот именно, если пропускать будет не очень правильно. А ошибки то ни какой нету, Вы не поняли. После нажатия клавиши есть ошибка или нету, выскакивает сначала сообщение "Папка тарифов очищена", а после "Папка тарифов уже пуста", а если там нету файлов для удаления, то все правильно, выскакивает "Папка тарифов уже пуста". Извините может я плохо описал ситуацию...
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
14.10.2009, 22:42
DM_AND, а Exit Sub ставить перед меткой за тебя дядя Бил будет? У тебя при невыполнении условия (т.е. где Else) выполняется сначала строчка с сообщением, а потом следующая с ERO: меткой. Что бы этого не происходило, нужно перед меткой делать выход из процедуры.

И вообще, не хорошо ставить обработку ошибок там, где и так понятно что она (ошибка) будет. Вовсе не обязательно заставлять бедную программу удалять то, чего нету. Тем более, что ты юзаешь fso. Там есть отличный способ получить все файлы в папке, обрати внимание на св-во Files объекта Folder. Проверяй наличие файлов, и удаляй их тока если они там есть.
1
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,946
14.10.2009, 23:34
А по большому счету для чего такой огород? Удаляйте в лоб не взирая что там есть и в конце всегда говорите что там уже ничего нет
Если там ничего и не было то мы никого не обманываем, а если и было то тоже правду сказали.
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
15.10.2009, 00:13
Toxa33rus, я точно не помню как в fso, но по моему если там "ничего и не было", то он ругнётся, и Kill ругнётся, если не найдёт что удалять. Не ругнётся только Api-функция. Ошибки (а если точнее, то исключения) и их номера и описания для того и придуманы, чтоб показать некорректный участок. Ситуёвина - код компилится, но файлы не удаляет. Прожжёный, опытный кодер скорее всего быстро догадался бы проверить путь, но стрёмно представить сколько волос из себя выдернет новичок, перед тем как поймёт, что у него в пути файл прописан как ...\aaa.txt а на деле называется ааа.txt (Ascii(а)=224, а не 97), и что когда он при создании этот файл обзывал у него русская раскладка была включена.

Не по теме:

Я как-то скопипастила код одного из формучан, который что-то спрашивал, и скопипастила функцию из его же вопроса. Помочь хотела. Я убила на простенький код 1,5 часа и чуть не рехнулась. Не сходились результаты вычислений с калькулятором. В итоге оказалось, что половина функции (та что в вопросе) у него была написана на кириллице, а половина на латинице, и в обеих половинах присутствовал x (т.е. в одной икс, а в другой х), а в коде ясен пень везде икс. Ты представить себе не можешь какие перлы мне vb выдавал! :) А всё почему? Потому что Option Explicit отключён! :)

1
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,946
15.10.2009, 11:12
Цитата Сообщение от Abu Посмотреть сообщение
Toxa33rus, я точно не помню как в fso, но по моему если там "ничего и не было", то он ругнётся, и Kill ругнётся
Само собой, но ошибки игнорировать и делов-то. FSO постоянно ошибки выводит (то файл занят то нет доступа к SystemVolumeInformation), я всегда когда его использую все игнорю.
0
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,590
Записей в блоге: 1
15.10.2009, 13:04  [ТС]
Цитата Сообщение от Toxa33rus Посмотреть сообщение
Само собой, но ошибки игнорировать и делов-то. FSO постоянно ошибки выводит (то файл занят то нет доступа к SystemVolumeInformation), я всегда когда его использую все игнорю.
Но если все игнорировать, то что будет за программа
0
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,946
15.10.2009, 20:41
Цитата Сообщение от DM_AND Посмотреть сообщение
Но если все игнорировать, то что будет за программа
А сейчас что за программа?
Простой скрипт по удалению файла.
0
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,590
Записей в блоге: 1
16.10.2009, 08:17  [ТС]
Цитата Сообщение от Toxa33rus Посмотреть сообщение
А сейчас что за программа?
Простой скрипт по удалению файла.
Это маленький кусочек кода из программы, то чего я сам не смог добиться и просил помощи у Вас, еще раз спасибо всем.
0
1 / 1 / 0
Регистрация: 01.10.2009
Сообщений: 17
16.10.2009, 20:23
Цитата Сообщение от DM_AND Посмотреть сообщение
Это маленький кусочек кода из программы, то чего я сам не смог добиться и просил помощи у Вас, еще раз спасибо всем.
Сам подумай... хочешь узнать что за ошибка. запиши ее код и посмотри ее в инете, если она фатально завершает прогу...

а если при таком коде тебе что - то выводится, поставь после ссылке на обработчик ошибок, то есть после ERO, msgbox err.Number и увидишь код ошибки... а там дело техники
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
16.10.2009, 20:32
}{O}{OJI, там не было ошибки, там была обработка ошибки. В смысле исполнялся код обработчика ошибки из-за отсутствия выхода из процедуры. Автор уже разобрался.
1
 Аватар для XIST
1960 / 1070 / 148
Регистрация: 01.10.2009
Сообщений: 3,590
Записей в блоге: 1
18.10.2009, 11:52  [ТС]
Цитата Сообщение от Abu Посмотреть сообщение
}{O}{OJI, там не было ошибки, там была обработка ошибки. В смысле исполнялся код обработчика ошибки из-за отсутствия выхода из процедуры. Автор уже разобрался.
Да, Abu права. Многие не поняли, нету ошибки.Отсутствовал конец процедуры. Abu еще раз спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2009, 11:52
Помогаю со студенческими работами здесь

Перехват такой ошибки...
Всем привет. Не подскажите как перехватить такую ошибку:

Перехват ошибки #43004
Добрый вечер. Можете подсказать как обойти такую незадачу... В API Document Manager есть такой метод у коллекции collection.ItemByTitle...

Перехват сообщения Ошибки...
Всем доброго времени суток, не подскажите как перехватить сообщение об ошибке при добавлении записи в БД Access? пробывал примерно...

Перехват ошибки error
Ребят как сделать перехват ошибки чтоб выводило на экран ошибку?? вот Какое условие придумать чтобы ошибку выдавало и работало?

MSSQL 2000 Перехват ошибки FK
Есть две таблицы, записи одной ссылаются на записи другой. При удалени записи во второй таблице (на которую ссылаются), при наличии ссылки...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю 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% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru