当前位置:首页 > 软件开放 > 正文内容

thinkphp任意代码执行(thinkphp d方法)

软件开放4天前158

处理运行时错误

可能会用到这些语句

因为执行过程时,总会遇到一些无法预料、无法避免的运行时错误,如激活一个根本不存在的工作表,将一个空单元格设置为除数,将工作表重命名为一个已经存在的名称等,所以无论编写代码时多么认真、仔细,都不能避免在执行过程时发生错误。

然而,有些运行时错误,是可以预先知道它们发生的位置的,对这种预先知道可能发生的错误,可以在过程中加入一些错误处理的代码,以保证过程能正常执行。

在VBA中,通过 On Error语句来获取过程中运行时错误的信息,并对错误进行处理。

如果出错,

让过程跳转到另一行代码处继续执行

如果希望在发生运行时错误时,过程能自动跳转到指定行的代码处继续执行,可以使用代码:

On Error GoTo Line

其中,代码中的“Line”是替 GoTo语句设置的标签。这个语句告诉 VBA,当在“On Error GoTo Line”这行代码之后发生运行时错误时,跳转到标签所在行的位置继续执行过程,如下图所示:

如果活动工作簿中没有标签名称为“Excel”的工作表,那么执行这个过程后,得到的是如图 9 -25 所示的结果。

展开全文

图9-25 使用On Error 语句处理过程中的运行时错误

如果出错,

忽略出错行的代码继续执行

On Error Resume Next是VBA中另一个处理运行时错误的语句。在执行过程时,如果On Error Resume Next之后发生运行时错误,则忽略存在运行时错误的代码,继续执行之后的其他代码。如下图所示:

因为VBA会忽略On Error Resume Next之后所有存在运行时错误的代码,所以执行这个过程后,无论工作簿中是否存在标签名称为“Excel”的工作表,VBA都不会为是否能执行代码 Worksheets("Excel").Select 提示错误信息, Exit Sub也一定会被执行,MsgBox函数所在的代码行将不会得到执行的机会。

注意:在编写过程时,因为只有On Error语句之后发生的运行 时错误才会被捕捉到,所以应该把On Error语句放在可能发生运行时错误的代码之前。

停止对过程中运行时错误的处理

无论是On Error GoTo Line语句,还是On Error Resume Next语句,只要在它们之后的代码发生运行时错误,都会按预先设置好的处理方式执行过程。可是执行过程时真正发生运行时错误的代码,有可能并不是预先估计会出错的那行代码,再使用预设的方式处理错误,未必就是正确的,如下图所示:

此时,如果活动工作簿中存在标签名称为“Excel”的工作表,但没有标签名称为 “ExcelHome”的工作表,执行过程后,得到的是如图 9 - 26 所示的结果。

图9-26 处理过程中存在的运行时错误

很显然,这并不是希望得到的结果。在这个过程中,通过On Error GoTo Er设置的,是当 Worksheets("Excel").Select 执行出错时的处理方式,而在刚才的例子中,发生运行时错误的却是另一行代码。

如果不希望其他代码出错时,也按预设的错误处理方式执行过程,可以在希望处理运行时错误的代码之后,停止对之后代码中可能存在的运行时错误的处理。

thinkphp任意代码执行(thinkphp d方法)

要停止对运行时错误的处理,可以使用On Error GoTo 0 语句,在过程中写入了On Error GoTo 0 后,那么无论在这行代码之前做了怎样的设置,之后出现的运行时错误都不会再按之前的设置执行过程,除非之后又通过On Error GoTo Line或On Error Resume Next设置了运行时错误的处理方式,如下图所示:

如果活动工作簿中拥有名为“Excel”的工作表,但没有名为“ExcelHome”的工作表, 则执行过程就会出错,如图 9-27 所示。

图9-27 发生运行时错误的过程

单击对话框中的【调试】按钮,让过程进入中断模式,可以看到过程出错的代码所在行,如图 9- 28 所示。

图9-28 执行过程时出错的代码

如果要处理这行代码可能发生的运行时错误,应重新使用On Error GoTo Line或On Error Resume Next设置,如下图所示:

这样,执行过程后就能得到期望的结果了,如图 9 -29 所示。

图9-29 处理过程中出现的运行时错误

处理运行错误的小窍门,你学会了吗?

推荐阅读

北京大学出版社

《别怕,Excel VBA其实很简单》

京东图书 每满100减50

数量有限,手慢无!

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://chlfg.com/post/122373.html

分享给朋友:

“thinkphp任意代码执行(thinkphp d方法)” 的相关文章

高楼阳台怎么装修安全又好看(高层楼房的阳台怎么装修比较好)

高楼阳台怎么装修安全又好看(高层楼房的阳台怎么装修比较好)

今天给各位分享高楼阳台怎么装修安全又好看的知识,其中也会对高层楼房的阳台怎么装修比较好进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、高层住宅阳台怎么装修 2、高层顶楼露台应该如何装修 3、6米挑高阳台怎么装修好 4、买了高楼住宅,阳台怎么装?...

怎么创建网站(怎么建网站)

怎么创建网站(怎么建网站)

本篇文章给大家谈谈怎么创建网站,以及怎么建网站对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、如何创建自己的网站平台 2、怎样自己创建一个网站? 3、怎么创建网站 4、怎么建网站呀! 5、怎么创建一个自己的网站 如何创建自己的网站平台 创建自己的网站平台...

微信小程序跨境电商(微信小程序做跨境电商)

微信小程序跨境电商(微信小程序做跨境电商)

今天给各位分享微信小程序跨境电商的知识,其中也会对微信小程序做跨境电商进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、至臻小程序是正品吗 2、如何说明跨境电商市场潜力大 3、腾讯小鹅拼拼上线不到两年就要关停 4、优时通奶粉是正品吗 至臻小程序是...

php手游源码平台(php页游源码)

php手游源码平台(php页游源码)

今天给各位分享php手游源码平台的知识,其中也会对php页游源码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、php网上商城系统源码求大神推荐一下不要太贵的 2、好的免费PHP源码下载 3、php网站源码 asp网站源码 哪个好 4、怎么才能安...

cctv5手机在线直播观看高清回放(cctv5在线直播观看高清手机版)

cctv5手机在线直播观看高清回放(cctv5在线直播观看高清手机版)

本篇文章给大家谈谈cctv5手机在线直播观看高清回放,以及cctv5在线直播观看高清手机版对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、cctv5+手机在线直播观看。为什么会出现排 2、直播CCTV5可以在哪回看? 3、手机可以看cctv5吗 4、cctv5...

如何在剪映上传自己制作的模板(怎么把作品上传到剪映,自己做的模板怎么上传到剪映)

如何在剪映上传自己制作的模板(怎么把作品上传到剪映,自己做的模板怎么上传到剪映)

本篇文章给大家谈谈如何在剪映上传自己制作的模板,以及怎么把作品上传到剪映,自己做的模板怎么上传到剪映对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、剪映专业版如何将视频嵌入模板 2、剪映怎么做模板让别人用? 3、剪映怎样做模板出售 4、用剪映怎样制作放假通知模...