vb写文件时如何自己处理异常......立即上分!
VB我不熟现在突然用到头痛...
就这么一句,
Open "D:\datarecord1.txt " For Output Lock Read Write As #1
接着就准备写操作了,问题是如果另一程序正在对文件D:\datarecord1.txt进行读时,这时VB程序去写文件open时肯定会被拒绝的,这时该用什么方法自己处理这个异常(比如说延时2秒再次执行写操作)而不是让系统退出......请高手指点!
急.......
[解决办法]
在这段程序前加“On Error GoTo handdle”
再声明“handdle”即可
如:
on error goto handdle
Open "D:\datarecord1.txt " For Output Lock Read Write As #1 '您的代码段
handdle:
msgbox "XXXXXXXX " '这里写您的错误提示内容
也可以在类中声明您的“错误代号”
[解决办法]
把写入文件的过程放在一个函数里,再利用错误捕捉语句实现判断是否执行成功.
private function savefile(byval filename as string) as boolean
on error goto errhandle
savefile = False
open filename for output lock read write as #1
'写文件的代码
savefile=true
close #1
exit function
errhandle:
close #1
end function
然后调用时,就自己用个循环去调用.如果这个过程返回F,当然就是出错了,你就延时后再调用(这些自己处理吧)
dim tmpi as long '控制超时的变量
tmpi=0
do
if savefile( "d:\xxxxxx.txt ")=true then
exit do '完成了,就退出
end If
sleep 2000 '延时两秒
tmpi=tmpi+1
if tmpi=5 then
msgbox "超时! " '十秒后超时.自己处理.
exit do
end If
loop
应该是可以运行的,懒得在IDE里试了,呵呵