CorelDRAWX4的C++插件开发(四十三)VBA的错误返回机制
我们在写程序的时候往往不知道内部出了什么问题,所以问题返回机制还是比较重要的,程序可以不正确,但是程序一出问题直接就闪退崩溃也是一大麻烦,所以这里我们先探讨一下VBA的错误返回机制
我们先上代码
CorelDRAW.Optimization = TrueOn errer GoTo cuowu'中间放需要的任意代码cuowu:CorelDRAW.Optimization = FalseCorelDRAW.Refresh
- 第一行的作用就是关闭渲染, 很清楚,在这种情况下如果是没有错误返回机制,那么一旦碰到了问题则在碰到问题的那一行就中断运行了,那么我们回到主程序的时候,画面自动更新并没有打开,所以这已经完完全全影响到了主程序的正常运行,所以,我们在第二行接上一句
On errer GoTo cuowu
这样子一句,那么当程序在运行当中碰到错误的时候会直接跳转至后面的cuowu:
这一行的位置接着运行, 这样子就直接省略了还未运行的中间的一大段代码,让程序能够一直跑到结尾,虽碰上错误但主程序仍然正常,那么使用这种格式来写VBA程序就是非常有必要的 cuowu
这个是代号,可以随意取名- 然后再看一下VB当中的无视错误
On error resume next
,如果写上刚才这一句,那么在后面出现错误的时候程序会直接无视这句错误继续执行相邻的下一句 On error
的句式的作用范围就是从这一句起一直到End Sub或者End Function为止
CorelDRAW.Optimization = TrueOn errer resume next'中间放需要的任意代码cuowu:CorelDRAW.Optimization = FalseCorelDRAW.Refresh
- 这一段遇到了错误会继续执行当中的代码一直到结尾,并且不会报错,有时候程序会出现一些小问题但是影响并不大的时候可以使用这一句来忽略程序中的报错问题
- 当然还有一种是
On error goto 0
,这一句就是禁止已经启动的错误处理程序,一般来说这一句就是用来关闭前面已经打开的On error goto
或者是On error resume next
, 也就是在On error goto 0
这一句之后的代码不再处于错误处理的范围内,仍按照正常的一句一句执行,举个例子
CorelDRAW.Optimization = TrueOn errer GoTo cuowu'(1)放任意代码On error goto 0'(2)放错误代码
cuowu:CorelDRAW.Optimization = FalseCorelDRAW.Refresh
- 可以看到, 这个格式,我们在(1)处的代码碰到了问题会跳至cuowu处接着运行,而在(2)处如果碰到了问题就会直接报错中断并不会跳转到cuowu处了,所以
On error goto 0
就起到了一个关闭错误处理的功能
CorelDRAWX4的C++插件开发(四十三)VBA的错误返回机制相关推荐
- CorelDRAWX4的C++插件开发(四十)纯C++插件开发(4)继承插件结构体IVGAppPlugin和自动化接口IDispatch
因为在注册插件的时候,是要传一个名为IDispatch*这样子的一个参数,所以我们可以看到插件在注册的时候默认就是要求这是一个实现了自动化的接口(IDispatch,如下图所示,是后面将要展示的代码, ...
- CorelDRAWX4的C++插件开发(四十一)纯C++插件开发(5)实现六个纯虚函数
这一节我们实现六个剩余的纯虚函数,先上代码 HRESULT __stdcall CongLingKaiShi::QueryInterface(REFIID riid, void** ppvObject ...
- CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象
CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象 1.打开第一章的界面如下图: 2.把之前的代码稍作修改 Sub 第一个插件()Dim zongShu ...
- OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...
- 四十三、深入Java中的数组流,数据流和对象流操作
@Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- 第四十三篇 面向对象进阶2
目录 第四十三篇 面向对象进阶2 一.类的封装 1.封装分为两个层面 2.应用 二.类的property特性 1. BMI(Body Mass Index):身体体质指数 2.装饰器用法(只在Pyth ...
- JavaScript学习(四十三)—构造方法创建对象的图解和注意事项
JavaScript学习(四十三)-构造方法创建对象的图解和注意事项 一.构造放法创建对象 之所以用构造放法创建对象就是为了解决工厂模式不能识别对象类型的问题.构造方法也可以被称为构造器,他的本质也是 ...
- 【正点原子MP157连载】第四十三章 外置RTC芯片PCF8563实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨) 邮箱: happylifemxy@163.com 本篇文章里,我们首先对Direct3D之中固定功能流水线中的 ...
最新文章
- Silverlight中文件的生成操作与其对应的获取方法
- jQuery学习笔记6:表单选择器
- python 线程死锁_python线程死锁与递归锁
- Python 技术篇 - 微信调用图灵机器人的api接口实现自动回复实例演示。图灵机器人的注册与使用
- 信息系统项目管理师:第5章:项目范围管理(2)-重点汇总
- Public DNS (公共域名解析服务)
- 【工具】55种开源数据可视化工具简介
- google+stackoverflow_解决stackOverflow打开慢的问题
- aotu.js 动态运行脚本_素材丨一键生成动态LOGO,3000+个样式随你选!
- JavaScript面向对象和原型函数
- 表单设计器 k-form-design
- ACL 2021之后是EMNLP 2021(征稿通知)
- SharePoint 2013技巧分享系列 - 隐藏Blog和Apps左侧导航菜单
- 全面解读数据中台、数据仓库和数据湖
- 电子设计教程7:线性稳压电源的工作原理
- CCPC 合肥站 打铁记
- php msg oob,MSG_OOB winsock
- 【Dash搭建可视化网站】项目11:世界自杀率数据看板
- 宝峰数科带你读懂数字家庭的真正内涵
- 防老人走失新方法:衣服上缝二维码 走失可扫码回家