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

Код: plaintext
wdDoc.Save 

run time "4198"

method 'save' of object '_Document' failed.
...
Рейтинг: 0 / 0
25.09.2007, 13:42
    #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
25.09.2007, 14:57
    #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
25.09.2007, 16:04
    #34825066
HolyG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подавление сообщения об ошибке
замечательно!... спасибо!
...
Рейтинг: 0 / 0
20.03.2008, 22:46
    #35204815
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подавление сообщения об ошибке
всем на заметку!
разрабатывал я прогу многозадачную, управлялась она 4-ма таймерами. там два мп3 плееры (микшируют плавно вступ и конец), два видео окна, автономная пишуща строка, и списки музыки, альб., песни и сценарий речи.
представте себе в одной процедуре (#1) он-еррор-гото... код прогр, калл на подпрограму (#2), а там еще калл (#3), а там ошибка! - управление перехвачивает процедура (#1) и дй наплевать что вы в (#3)!
...
Рейтинг: 0 / 0
20.03.2008, 22:58
    #35204829
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подавление сообщения об ошибке
продолжаю...
в процед.(#3) поставил свой он-еррор-ресюме.
итог. на пр.(#1) и (#2) будет действовать перехват он-еррор из проц.#1 (даже после возращения из #3), а в проц.#3 - свой он-еррор.
с уважением Андрей
спасибо за внимание
(пишу с мобильника)
...
Рейтинг: 0 / 0
21.03.2008, 10:33
    #35205246
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подавление сообщения об ошибке
> Автор: Андрей159
> продолжаю...
> в процед.(#3) поставил свой он-еррор-ресюме.
> итог. на пр.(#1) и (#2) будет действовать перехват он-еррор из
> проц.#1 (даже после возращения из #3), а в проц.#3 - свой он-еррор.

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

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


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


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

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

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

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

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


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

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

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

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

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


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13.08.2009, 23:53
    #36143215
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подавление сообщения об ошибке
зачет
...
Рейтинг: 0 / 0
14.08.2009, 00:06
    #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
14.08.2009, 00:24
    #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
14.08.2009, 10:31
    #36143651
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подавление сообщения об ошибке
> Автор: Андрей159
> в большом проэкте много ошибок, и много нужно испытывать прогу чтоб их обнаружить, я только недавно начал решать
> эту проблему, и на скорость это никак не влияет

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

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


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


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