VB6 Для цикла при поведении ошибки - PullRequest
1 голос
/ 17 декабря 2009

В VB6 у меня есть следующая строка кода в событии Form_Load:

DOSOMETHING()
MsgBox "Done"

DOSOMETHING () - это глючная функция, которая, как я ожидаю, всегда приводит к сбою. Когда я запускаю приложение, оно выполняет свою работу и вылетает, не показывая MsgBox.

Но когда я пишу это используя циклы:

Dim X as Integer

For X = 0 to 1000
    DOSOMETHING()
    MsgBox "Done"
Next X

Приложение никогда не остановится. Я думал, что это как-то связано с задержками, поэтому я также попытался добавить SLEEP в цикл, но безрезультатно.

Итак, мой вопрос: есть ли в цикле For в VB6 специальный «On Resume Next Resume Next»?

PS:

Если кому-то интересно, почему я спрашиваю об этом, я пытаюсь воспроизвести периодически возникающую ошибку, вызывая функцию несколько раз. Упомянутая функция используется для проверки функции администратора. Подробнее о функции здесь .

Спасибо!

Ответы [ 2 ]

1 голос
/ 23 декабря 2009

Возможно, я не имею никакого отношения к тому, что он вызывается из Form_Load. Возможно, некоторая инициализация позже в Form_Load или Form_Activate приведет к тому, что он не завершится сбоем.

0 голосов
/ 19 декабря 2009

Попробуйте вставить DoEvents после вызова DoSomething. Это приводит к o / s, позволяя обрабатывать события в его очереди и может позволить завершить функцию или завершиться с ошибкой! перед возвратом к вызывающему родителю.

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