总结

  • on error goto 0 /-1        '直接抛出异常
  • on error resume next    '忽略,但是可以配合 if 等来处理
  • on error goto  index       '处理异常

1 基本错误捕捉语句 (自动抛出异常)

  • on error goto 0     约等于   缺省默认,什么也不写
  • on error goto 0     停止执行!并且直接抛出对应错误。
  • on error goto -1  处理掉前面的出错进程,又开启一个新的,也会报错
  • 两者详细差别,stack overflow上有

excel - Difference between 'on error goto 0' and 'on error goto -1' -- VBA - Stack Overflow

2 其他错误处理语句 (不抛出异常 / 不管异常 / 或 同时自己处理异常)

  • on error resume next
  • on error resume next  配合 if 一样可以部分实现 类 on error goto 0 效果,但一般来说肯定没有on error goto 0 全!

一个例子

Sub t5()On Error Resume Next
a = 1 / 0
Debug.Print "a=" & aOn Error GoTo 0
b = 1 / 0
Debug.Print "b=" & bEnd Sub

3 错误处理其他方法

  • on error goto  index
  • 配合 index 使用
  • 注意  block 是顺序执行,on error goto  index 只影响它后面的语句
  • 纯文本提示也可以
  • on error goto  Err_Handle
  • 配合Error_Handle:使用

Error_Handle:
    errNum = ErrorsHandle
    If errNum = 0 Then
        Resume
    ElseIf errNum = 1 Then
        Resume Next
    Else
        Exit Sub
    End If

举例说明,如果要多次处理不同的错误,或者分段处理报错

  • on error goto XX  单独使用一般只能处理一次报错,写多个也没用
  • on error goto XX  配合 on error goto -1 可以处理这种情况
  • on error resume next 屏蔽报错,然后用if 处理也可以(但是要有if 确实遍历了所有出错的可能性)

例子1

Sub t2()On Error GoTo line1a = 1 / 0Debug.Print "11"
line1:Debug.Print "12"On Error GoTo line2b = 1 / 0Debug.Print "21"
line2:Debug.Print "22"On Error GoTo line3c = 1 / 0Debug.Print "31"
line3:Debug.Print "32"End Sub

例子2

Sub t4()On Error GoTo line1a = 1 / 0Debug.Print "11"
line1:On Error GoTo -1Debug.Print "12"On Error GoTo line2b = 1 / 0Debug.Print "21"
line2:On Error GoTo -1Debug.Print "22"On Error GoTo line3c = 1 / 0Debug.Print "31"
line3:On Error GoTo -1Debug.Print "32"End Sub

例子3

Sub t3()On Error Resume Nexta = 1 / 0Debug.Print "11"
line1:Debug.Print "12"b = 1 / 0Debug.Print "21"
line2:Debug.Print "22"c = 1 / 0Debug.Print "31"
line3:Debug.Print "32"End Sub

VBA的3种错误处理方式 on error goto 0 /-1 , on error resume next , on error goto index,是抛出异常,还是忽略报错,还是进行错误捕捉?相关推荐

  1. manjaro软件源报错 不停看到错误 “PackageName: signature from “User <email@archlinux.org>“ is invalid“ 的几种解决方法

    manjaro软件源报错 不停看到错误 "PackageName: signature from "User " is invalid" 的几种解决方法 参考文 ...

  2. 怎么解决 报错 HTTP 405 错误 – 方法不被允许Method Not Allowed‘ on ‘/‘

    在svn提交或者更新时,遇到自己或者别人代码报错, 405 错误经常和 POST 方法同时出现 请求路径中'/'不被允许,那肯定是注解中关于路径的请求方式写错了, 检查你的注解@RequestMapp ...

  3. PHP json_decode()报错 json_last_error()判断错误类型 解决

    PHP json_decode()报错 json_last_error()判断错误类型 解决 背景:最近在用curl请求接口获取json数据串的时候,一直出现PHP中json_decode()解析字符 ...

  4. Oracle导入大数据量(百万以上)dmp文件,报错ora-12592 :包错误

    进行自动化测试过程中,发现需要重新搭建一套自动化测试库,然后利用pl/sql对数据库导出: 进行导入后发现报错ora-12592 :包错误 原因分析,数据量过大,传输超时,需要在Oracle服务端以及 ...

  5. 淘宝联盟 推广链接 API取链 转链报错 传入参数错误,请检查adzone_id是否属于appkey拥有者

    通过之前的取链文章,现在新增渠道时候报错 传入参数错误,请检查adzone_id是否属于appkey拥有者","request_id":"f7vemdro9du ...

  6. 微信登录报错Scope 参数错误或没有 Scope 权限

    想要实现微信扫码登录 https://open.weixin.qq.com/connect/qrconnect?appid=appid&redirect_uri=redirect_uri&am ...

  7. 关于Windows Server自动重启,并出现日志报错WHEA-Logger 47错误解决方案

    关于Windows Server自动重启,并出现日志报错WHEA-Logger 47错误解决方案 参考文章: (1)关于Windows Server自动重启,并出现日志报错WHEA-Logger 47 ...

  8. 远程桌面复制文件到本地,报错“未指定的错误”

      从远程桌面复制一个文件到本地C盘,报错"未指定的错误",参考该博文后解决了.方法就是在连接远程桌面时,在设置中勾选"端口"."驱动器"和 ...

  9. 整理各种Vue项目在IE浏览器白屏报错 SCRIPT1002:语法错误

    目录 一.关于 sockjs-client 依赖包 二.关于 highlight 依赖包 三.关于 swiper 依赖包 四.IE 不支持 ES6 语法 五.第三方插件引入导致 六.本地环境正常,生产 ...

  10. eclipse内部浏览器报错:此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示

    eclipse内部浏览器报错:此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示 修改eclipse设置即可解决: window->pre ...

最新文章

  1. MIT重磅报告:一文看清AI商业化现状与未来
  2. nginx $mail-send()发送邮件报错_基于SMTP协议的E-MAIL电子邮件发送客户端软件C#实现...
  3. JS的Date.setMonth()方法坑
  4. linux 下批量压缩文件
  5. 2011年ESRI北京站IDL视频教程(全)
  6. ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的地球仪标刻功能介绍及其操作设置...
  7. intellij idea 15 万恶的光标跟随
  8. 一款java游戏收齐绿宝石哈,神奇宝贝绿宝石游戏
  9. verilog符号 与或非 异或_与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写...
  10. Java实验1-1【超市购物小程序】
  11. App Store上的健身应用
  12. 浅谈Spring事件监听
  13. spring不停机部署_关于不停机部署方案的选择
  14. 【火龙果】评测三 MicroPython上手初体验
  15. Linux下如何彻底删除用户
  16. 使用SpringBoot一小时快速搭建一个简单后台管理(后端篇)
  17. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文但“good”不是回文,试写一个算法判断给定字符是否为回文。
  18. 知识分享之Golang——json与omitempty的使用
  19. Linux中EOF用法
  20. Win10将谷歌浏览器设置为默认浏览器(修改默认应用)

热门文章

  1. java社招是什么_java社招怎么准备
  2. 中国民生银行:智能运维引领数据中心数字化转型
  3. 如何清除win7系统中的开机密码
  4. 跨学科应用!GAN论文登上Nature子刊
  5. 【Lucene】TokenStream-语汇单元的项、偏移量、类型和位置增量
  6. Delphi--最强大的开发工具(欢迎转载)
  7. 20200123_导航电子地图道路网络分层原理_研讨会视频
  8. 总结Ajax同步执行的方法
  9. 如何屏蔽国外IP访问
  10. Kali2021.1汉化教程