Как перезапустить мою программу при возникновении ошибки [Vb6] - PullRequest
0 голосов
/ 26 декабря 2010

Как перезапустить мою программу при возникновении ошибки [Vb6]?

Ответы [ 2 ]

0 голосов
/ 19 июня 2011

Вы также можете использовать Resume Next для продолжения обработки следующих инструкций

Public Sub MyMain()
    On Error Resume Next
    aNumber = someNumber / 0    'Divide by Zero will yield a run time error
    If Err<>0 Then         'In case you want to re-act with the error to the user
        MsgBox "Divide by Zero Occurred"
    End If
    On Error Goto 0    'This will un-do the effect of On Error Resume Next, meaning
                       ' that if any other error occurs, there will be a runtime error
                       ' use this if you intentionally want to
End Sub
0 голосов
/ 27 декабря 2010

В VB6 у вас есть возможность запустить программу, запустив форму или вызвав некоторую глобальную подпрограмму «Main» (в настройках проекта). Выберите этот последний вариант (глобальная основная подпрограмма).

В вашей глобальной основной программе сделайте что-то вроде этого:

Public Sub MyMain()
    On Error Goto errHandler
    frmMain.Show
    Exit Sub
errHandler:
    Unload frmMain
    Resume
End Sub

Resume будет перезапущен с той же строки, которая вызвала ошибку, и, поскольку на самом деле есть только одна строка, он всегда будет загружать одну и ту же форму.

Предполагается, что у вас есть основная форма с именем frmMain и что она может успешно пройти через подпрограмму Form_Load.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...