VB 某些异常捕获后无法处理

如下一段VB代码:OnErrorGotoErrhandleNameAasBc=dErrhandle:ifErr.Number="58"then'代码endif问题:当程序... 如下一段VB 代码:
On Error Goto Errhandle
Name A as B
c=d
Errhandle:
if Err.Number="58" then
'代码
end if

问题:
当程序运行到 Name A as B 语句时,捕获异常错误,错误代码为58,即文件已存在,此时,程序应该转而执行 Errhandle:
if Err.Number="58" then 语句才对,但是,程序要么继续运行执行c=d语句,或者干脆就报错退出运行。
为什么既然已经捕获了异常,怎么不去执行异常处理代码,还会继续执行错误的代码或者就出错退出运行呢?如何解决此问题?
展开
 我来答
dh3113
2011-07-09
知道答主
回答量:65
采纳率:0%
帮助的人:30.9万
展开全部
On Error Goto Errhandle_error
Name A as B
c=d
Errhandle_error:
if Err.Number="58" then
'代码
end if
就可以了,加个_error即可
更多追问追答
追问
经测试,一种正确的方法是:
On Error Resume next
Name A as B
if Err.Number=58 then Goto ErrLineLabel
c=d
ErrLineLabel:
'代码
这样子处理后,异常被捕获后就不再执行c=d语句了,也不报运行错误而中途退出了。
你刚才的方法,经测试,仍然会弹出运行中实时错误而终止。
追答
我的方法没有问题的,我的软件就是这样的,运行过无数遍了。。该不会是你不想给我加分吧?
百度网友bdb9803
2011-07-09 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
Err.Number不是字符串型的好不好:
if Err.Number=58 then
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式