Как найти ошибки времени выполнения до того, как они появятся? - PullRequest
0 голосов
/ 24 сентября 2019

Есть ли место, где перечислены большинство (все было бы идеально, но маловероятно) ошибок времени выполнения, которые могут произойти для каждой функции / оператора / и т. Д. VBA?

Например, Функция FreeFile может выдать Run-time error '67': Too many files, но это не указано на странице документации.

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

Но если вы знали об этом во время программирования, вы могли бы попытаться использовать необязательный аргумент как 1 (по умолчанию 0), чтобы изменить диапазон с 1-255на 256-512, и если это не помогло, предупредите пользователя, что используется слишком много файлов, и спросите, может ли он закрыть последний, чтобы освободить место.

Некоторыеиз этих ошибок могут оставаться незамеченными в течение длительных периодов времени, пока они не будут обнаружены, в отличие от ошибок компиляции / синтаксиса.

Поиск «ошибок времени выполнения VBA FreeFile» действительно показывает, что происходит конкретная ошибкасоюзник на некоторых страницах от людей, которые сталкивались с ними, но я ищу где-нибудь более подробный список различных ошибок.

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

1 Ответ

0 голосов
/ 24 сентября 2019

Это должен был быть комментарий, но он становился очень длинным.

У меня нет URL-адреса, в котором перечислены все возможные исключения VBA, но я считаю, что обработка ошибок идет рука об руку с опытом.

Очевидно, что некоторые ошибки требуют здравого смысла, чтобы предотвратить их, например, если вы попытаетесь получить доступ к свойству объекта без проверки на Null, вы можете получить исключение Null Reference.

Тем не менее, если на вашей стороне нет опытного разработчика, который бы помог вам, вы получите опыт иногда трудным путем.

На самом деле вам нужно попытаться поймать как можно больше конкретных исключений, но на самом деле вы не можете думать обо всем.Иногда вы что-то пропустите из-за плохой документации или просто не знали о проблеме.Поэтому я думаю, что вам нужно начать с универсального обработчика ошибок, и по мере развития вашего приложения, обработка ошибок также совершенствуется, дополняя его ошибками, произошедшими в течение жизненного цикла приложения.

Удачи.

...