您的位置:程序门 -> vb -> 基础类



vb写文件时如何自己处理异常......立即上分!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vb写文件时如何自己处理异常......立即上分![已结贴,结贴人:qeq2008]
发表于:2007-04-20 18:43:56 楼主
vb我不熟现在突然用到头痛...
就这么一句,
open   "d:\datarecord1.txt "   for   output   lock   read   write   as   #1
接着就准备写操作了,问题是如果另一程序正在对文件d:\datarecord1.txt进行读时,这时vb程序去写文件open时肯定会被拒绝的,这时该用什么方法自己处理这个异常(比如说延时2秒再次执行写操作)而不是让系统退出......请高手指点!

        急.......
发表于:2007-04-20 19:44:211楼 得分:25
在这段程序前加“on   error   goto   handdle”
再声明“handdle”即可
如:
on   error   goto   handdle

open   "d:\datarecord1.txt "   for   output   lock   read   write   as   #1   '您的代码段

handdle:
msgbox   "xxxxxxxx "       '这里写您的错误提示内容

也可以在类中声明您的“错误代号”
发表于:2007-04-20 19:49:072楼 得分:25
把写入文件的过程放在一个函数里,再利用错误捕捉语句实现判断是否执行成功.

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里试了,呵呵
发表于:2007-04-21 08:10:503楼 得分:0

谢过两位......俺试下!
发表于:2007-04-21 09:53:594楼 得分:0
问题已经解决......感谢!

大侠请接分!


快速检索

最新资讯
热门点击