【发布时间】:2017-03-25 22:29:09
【问题描述】:
在 VBA 代码中处理错误时,there are a few methods commonly utilized。其中一种方法是使用On Error Resume Next 的内联错误处理。但是,在阅读了现有问题“VBA: How long does On Error Resume Next work?”后,我发现不清楚程序是否会在下一行继续执行,或者程序是否会在下一个逻辑点继续执行。
MSDN has the following description 用于On Error Resume Next 的功能:
指定当发生运行时错误时,控制权转到 紧跟在发生错误的语句之后的语句 执行继续的地方。使用此表单而不是 On Error GoTo 访问对象时。
此外,Resume 关键字上有(现已停用)StackOverflow 文档,其中声明了与 On Error Resume Next 类似的内容:
Resume Next继续执行紧随其后的语句 导致错误的语句。如果错误实际上不是 在此之前处理,然后允许继续执行 具有潜在的无效数据,这可能会导致逻辑错误和 意外行为。
这并没有明确说明错误处理行如何处理控制流语句的初始行中的错误。具体来说,如果错误发生在If .. Then .. Else .. End If 语句的第一行,程序是从If 语句的第一行开始运行,还是从End If 语句之后的第一行开始运行?
【问题讨论】:
标签: vba error-handling