线程中使用了一个死循环在处理一些事情。但偶尔循环内会有异常,这时候似乎就退出循环了,意味着这个线程也就结束了。
我不想让循环停止,无论什么情况下。我使用了tryexcept,在except中使用了,并做了日志写入,continue,不知道这样可不可以。
但有时候会导致整个程序退出,不知道是写日志的问题,还是continue的问题  

解决方案 »

  1.   

    写日志看你怎么写,太快一般是IO错误
    可以用DEBUG输出信息 
      

  2.   

    内嵌
    try
    except
      输出异常信息
    end;
    没问题的
      

  3.   

    写日志看你怎么写,太快一般是IO错误
    可以用DEBUG输出信息 
    ---------太快怎么会IO错误呢,该怎么处理
      

  4.   

    execute函数内容:
     
    while true do
      begin    try
         
       ............          except                         //这个捕获错误,是为吉林改的,可是改了后据说总是自动退出
          on E:Exception do
             begin          RecordPrintLog('循环错误',printStr+'////////////'+e.Message);
              continue;
            end;
        end;以上代码有问题吗,如果循环内错误,为了保证线程继续,然后继续continue可行吗,
      

  5.   


    写入速度快其实一般不会,产生IO错误。
    如果担心的话,可以在写入日志前
    sleep(10)
      

  6.   

    RecordPrintLog('循环错误',printStr+'////////////'+e.Message);这句是否有效记录了异常信息呢?
      

  7.   

    看是什么错误, TRY EXCEPT 不是所有异常都可以获取到的,你可以试下 , 
    异常退出的时候,没弹出框?
      

  8.   

    那个Continue不是多余的吗?
    也许是你写日志有出异常了呢,在写日志地方再加个try试试
      

  9.   

    从程序表现来看,肯定是线程停止了,因为我有时标,现在还不知道是具体哪里的错误
    为了让程序能继续使用,所以想先治标,让线程不停止如果不用continue,好像循环就退出了
      

  10.   

    写日志也出现异常 ??except ..end 之间的代码去掉,再测试。