powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / подавление сообщения об ошибке
18 сообщений из 18, страница 1 из 1
подавление сообщения об ошибке
    #34823950
HolyG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ребят, подскажите как подавить сообщение об ошибке сохранения файла в случае незаконченности этого процесса...))))

Код: plaintext
wdDoc.Save 

run time "4198"

method 'save' of object '_Document' failed.
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #34824341
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может это подойдет

Синтаксические ошибки невозможно обработать потому что программа просто не может при их наличии ни выполняться ни компилироваться. Простая аналогия: "Я не хочу, чтобы автомобиль без колес тупо валялся на дороге, пусть он поедет на сервис, там его обработают".

Чтобы сделать так как вы хотите, код нужно выполнять в стороннем интерпретаторе, который сам сгенерит ошибку, которую можно будет обработать. Пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub zzz()
Dim scr as Object
    On Error Goto errh
    Set scr = CreateObject("MSScriptControl.ScriptControl")
    scr.Language = "vbscript"
    scr.AddObject "ThisWorkbook", ThisWorkbook
    scr.AddCode "sub Activate()" & vbcrlf & "ThisWorkbook.Sheets(1).Activate" & vbcrlf & "sdl5,u.7jf y;y54 'синтаксическая ошибка" & vbcrlf & "End Sub"
    scr.Run "Activate"
    exit sub
errh:
    Msgbox Err.Description
    Msgbox scr.Error.Description
End Sub

?
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #34824722
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HolyGсообщение об ошибке сохранения файла в случае незаконченности этого процесса

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
On Error GoTo EH
...
wdDoc.Save 
...
Exit Sub
EH:
обработчик ошибки
End Sub
либо
Код: plaintext
1.
2.
3.
On Error Resume Next
...
wdDoc.Save 
...


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #34825066
HolyG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
замечательно!... спасибо!
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #35204815
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем на заметку!
разрабатывал я прогу многозадачную, управлялась она 4-ма таймерами. там два мп3 плееры (микшируют плавно вступ и конец), два видео окна, автономная пишуща строка, и списки музыки, альб., песни и сценарий речи.
представте себе в одной процедуре (#1) он-еррор-гото... код прогр, калл на подпрограму (#2), а там еще калл (#3), а там ошибка! - управление перехвачивает процедура (#1) и дй наплевать что вы в (#3)!
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #35204829
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжаю...
в процед.(#3) поставил свой он-еррор-ресюме.
итог. на пр.(#1) и (#2) будет действовать перехват он-еррор из проц.#1 (даже после возращения из #3), а в проц.#3 - свой он-еррор.
с уважением Андрей
спасибо за внимание
(пишу с мобильника)
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #35205246
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Андрей159
> продолжаю...
> в процед.(#3) поставил свой он-еррор-ресюме.
> итог. на пр.(#1) и (#2) будет действовать перехват он-еррор из
> проц.#1 (даже после возращения из #3), а в проц.#3 - свой он-еррор.

Ну вообще-то это нормально, а какое поведение ожидалось?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #35205917
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159всем на заметку!
разрабатывал я прогу многозадачную, управлялась она 4-ма таймерами. там два мп3 плееры (микшируют плавно вступ и конец), два видео окна, автономная пишуща строка, и списки музыки, альб., песни и сценарий речи.
представте себе в одной процедуре (#1) он-еррор-гото... код прогр, калл на подпрограму (#2), а там еще калл (#3), а там ошибка! - управление перехвачивает процедура (#1) и дй наплевать что вы в (#3)!


так ли? ошибка относится к той процедуре, в какой она возникает
Ваш случай может получится ЛИШЬ В ТОМ СЛУЧАЕ и ТОЛЬКО В ТОМ , когда ни в подпрограмме (#2), ни в подпрограмме (#3) нет своих обработчиков ошибок или в этих обработчиках генерится ошибка для передачи в вызывающие подпрограммы


Если я не прав, поправьте меня
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #35206479
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: HandKot
> Андрей159
> так ли? ошибка относится к той процедуре, в какой она
> возникает

> Ваш случай может получится ЛИШЬ В ТОМ СЛУЧАЕ и ТОЛЬКО В ТОМ, когда ни
> в подпрограмме (#2), ни в подпрограмме (#3) нет своих обработчиков ошибок
> или в этих обработчиках генерится ошибка для передачи в вызывающие
> подпрограммы

> Если я не прав, поправьте меня
ну, собственно говоря, можно и так сказть, а лучше приникнуть к
источнику
т.с. :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #35208060
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в моей библии такого "примечания" нет, ошибка такого рода и незнание об этом забрало у меня два дня и куча нервов. по этому я принял участие в этом топике.
с уважением Андрей
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
подавление сообщения об ошибке
    #36126447
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, а вот ON LOCAL ERROR RESUME NEXT такую форму недавно только увидел и так себе думаю откуда я мог знать что есть еще й такое написание (в моих библиях про єнто ничего не написано). Какие есть еще варианты написания и что "локал" дает ???
Спасибо.
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36126931
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Андрей159
> Ребята, а вот ON LOCAL ERROR RESUME NEXT такую форму недавно только увидел и так себе думаю откуда я мог знать
> что есть еще й такое написание (в моих библиях про єнто ничего не написано). Какие есть еще варианты написания и что
> "локал" дает ???

Пишут что ничего


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36130462
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Здесь это поясняется:

http://www.codecomments.com/archive293-2004-9-282740.html

Это старая форма, когда еще концепт поддержки ошибок был другой. Она оставлена для совместимости с очень старыми программами и эквивалента форме On Error ....
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36130564
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: VladConn

Спасибо, я уже тоже нашел, что это для BASIC'ов, а потом просто оставили для совместимости при одинаковом функционале.
З.Ы. Правда я не помню таких тонкостей на
Корветах ,
с другой стороны все написаные мной, тогда, программы были без обработчиков ошибок, т.к. работали без ошибок
С другой стороны мои исследования по запуску машинного кода из интерпретатора бейсика закончились тем что я уперся в то
что по окончании работы кода не знал куда передавать управление и поэтому приходилось перегружать комп
Это уже потом я пришел, к тому, что иногда проще перехватить и обработать ошибку(иногда другого пути нет) чем что-то
перепроверять :)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36143215
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачет
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36143229
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рисунок не показывает... ну да ладно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Command1_Click()
On Error GoTo Er1
 Call Lol1
Exit Sub
Er1:
  MsgBox "Твою мать...", vbCritical, "LOL"
End Sub
Private Sub Lol1()
'On Error GoTo er2
 Call lol2
 Exit Sub
er2:
  MsgBox "Что за хрень ?", vbCritical, "LOL"
End Sub
Private Sub lol2()
 Get # 1 , Хухри, Мухри
 MsgBox "sdfsdf"
End Sub

только бесит. как с этим бороться, нужно организовать правильно прогу учитивая это.

У меня был случай, когда я не мог понять почему прога не выполняется, так как я поставил в одной процедуре где работал с файловой системой open for input ....get..... on error goto err.... дальше в err1 закрывал файл close #1 и goto дальше... или был случай с resume next тоже похож... неважно. С этой процедуры исполнялись по очереди другие процедуры и функции. В одной из функций была ошибка, иногда число было за пределами типа byte и в первой процедуре срабатывало просто error и я долго не мог разобраться...
Я уже об этом сдесь писал, а сдесь только пример. Спасибо
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36143238
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
все написаные мной, тогда, программы были без обработчиков ошибок, т.к. работали без ошибок

в большом проэкте много ошибок, и много нужно испытывать прогу чтоб их обнаружить, я только недавно начал решать эту проблему, и на скорость это никак не влияет
Многое переписал, вот из самого простого например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function M_Mid(Txt As String, P As Long, L As Long, Metka As Long) As String
  If P >  0  Then
    If L =  0  Then
      M_Mid = Mid(Txt, P, L)
    Else
      M_Mid = Mid(Txt, P, L)
    End If
  Else
    Call AddErrorToJurnal("-->" + Str(Metka))
    Call AddErrorToJurnal(Txt)
    Call AddErrorToJurnal(Str(P))
    Call AddErrorToJurnal(Str(L))
  End If
End Function
...
Рейтинг: 0 / 0
подавление сообщения об ошибке
    #36143651
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Андрей159
> в большом проэкте много ошибок, и много нужно испытывать прогу чтоб их обнаружить, я только недавно начал решать
> эту проблему, и на скорость это никак не влияет

В больших проектах больше "логических" ошибок, а вот их отлову уже не поможет обработчик исключительных ситуаций

З.Ы. Недавно "причесывая" код, поменял left join на inner join, мне показалось лишним левое соединение, как потом
выяснилось, мне действительно показалось


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / подавление сообщения об ошибке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]