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语句,或者干脆就报错退出运行。
为什么既然已经捕获了异常,怎么不去执行异常处理代码,还会继续执行错误的代码或者就出错退出运行呢?如何解决此问题? 展开
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语句,或者干脆就报错退出运行。
为什么既然已经捕获了异常,怎么不去执行异常处理代码,还会继续执行错误的代码或者就出错退出运行呢?如何解决此问题? 展开
展开全部
On Error Goto Errhandle_error
Name A as B
c=d
Errhandle_error:
if Err.Number="58" then
'代码
end if
就可以了,加个_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语句了,也不报运行错误而中途退出了。
你刚才的方法,经测试,仍然会弹出运行中实时错误而终止。
追答
我的方法没有问题的,我的软件就是这样的,运行过无数遍了。。该不会是你不想给我加分吧?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询