//请问下面的代码中存在什么问题(不要告诉我,有些变量没有定义)?
SomeObject* pso = NULL;
try{
for(int i=0; i<nObjectCount; i++)
{
pso = new SomeObject;
pso->ReadFromNetwork(aNetwordConnection); //this function may throw an exception
AddSomeObjectToList(pso);
}
}
catch(ExceptionType exception)
{
MessageBox("ReadFromNetwork Error", "Error", MB_OK);
}//不论对错,来者有分

解决方案 »

  1.   

    THROW ERROR 将导致 PSO not delete
      

  2.   

    pso有可能成为野指针,无法删除
      

  3.   

    zheng_rui(第二刀)的回答是对的。另外在循环体内抛出异常,不知道是否可以捕获???
      

  4.   

    楼主很喜欢倒分啊??
    papaya_stone(^_^)shentong(^_^)今天会不会来领这200分
      

  5.   

    zheng_rui(第二刀)的回答是对的
      

  6.   

    好象只有new 没有delete的,而且不管有没有出异常都没有delete
      

  7.   

    若出现异常,应在异常代码中删除在try块中创建的对象pos,防止内存丢失。
      

  8.   

    若出现异常,应在异常代码中删除在try块中创建的对象pso,防止内存丢失。
    不好意思,字母拼错了。
      

  9.   

    我也同意 zheng_rui(第二刀)
      

  10.   

    给分就告诉你 ,至少没有销毁 new
      

  11.   

    我也觉得把try 和 catch 放到循环体内会更好些
      

  12.   

    大家注意:
    第一:此帖只为散分,我知道正确答案, zheng_rui(第二刀)是对的
    第二: 信誉分和结帖率无关,我的结帖律是100%
    第三:不要听那个lanfengjiyue(一心想做程序员的歪脚鸭)胡说,我从未倒过分
      

  13.   

    第一,如果有错可能是你的object没有重载==。
    第二,你没有提到是否delete object;
    第三,你的catch可能得到new的错误。
    第四,没有郊率。
    .....