我用CSocketFile和CSocket和CArchive来传输文件,但是当我正在传输时拔掉网线,服务器端(多线程收发)程序崩掉了,有什么办法让服务器端返回一个错误而不崩掉程序,有人这么做过么?谢谢所有回答的或者UP的

解决方案 »

  1.   

    这种问题太抽象,
    那就抽象的回答,加个try{}catch{...}
      

  2.   

    哎呀
    有人回答了
    感动ing
    那我就在具体点
    我在序列化函数中勇read和write向CsocketFile写数据
    CSocketFile把数据发出去
    我看了底层,CSocketFIle用CSocket的send发数据
    发送失败的话抛出异常  一抛出异常我的服务器程序就over了
    另外
    我用了try  catch
    木有用
    因为
    ////序列化函数try{
    // blablablab
    ar.write(....)
    }
    catch()
    {
    }
    因为是发送中中断
    程序到ar.write那块就死掉了
    不知道有人看懂没
      

  3.   

    catch(CArchiveException)
    catch(CFileException)
    可以拦截错误的原因
    catch(...)
    拦截所有,但得不到错误原因
      

  4.   

    我用的是catch(CException){
    //但是他进不来
    }
    直接在try{ar.write//这里程序死掉
    }
    ps:谢谢回帖
      

  5.   

    另外
    他是这样抛出异常的
    afxThrowFileException(CFileException::gener..,nError)我又用了catch(CFileException)
    依然拦截不到错误是不是我上面的
    try
    {}
    catch{}
    用得不对啊;。。郁闷无语ing
      

  6.   


    try
    {
    }
    catch(CFileException * e)
    {
    }
    catch(CArchiveException* e)
    {
    }
    catch(...)
    {
    }
      

  7.   

    谢谢IamNieo
    后来我试了
    到catch(...)了
    不知道是什么异常
    虽然自己不爽
    但是boss高兴了哎
    看来结果至上啊
    :-) 今天来结贴了~~~~~~~~~~~~~~~~~~再次权利感谢ing