hur.cn - 华软网

 热门搜索

try ...catch的问题

  作者:未知    来源:网络    更新时间:2011/4/12
我的程序在DEBUG下是好的,在RELEASE下莫名异常退出。加了TRY,CATCH后,就好了。但就是不知道问题出在那里。 怎么办呢?
---华软 网友回答---
CATCH 里面临毛病举行分析
---华软网友回复---
如何分析? 请帮我增补上。
catch(CException* e)
{
e->Delete();
AfxGetMainWnd()->MessageBox("请! ","提醒",MB_ICONINFORMATION);
}
---华软网友回复---
详细要看你你是干什么,如果是操作数据库
          try
{
……
}
catch(_com_error err)
{
CString errMsg;
errMsg.Format("操作数据库失利:%s",err.ErrorMessage());
AfxMessageBox(errMsg);
}
---华软网友回复---
您QQ几多?
---华软网友回复---
你try里面的代码是?
---华软网友回复---
我也不知道是什么毛病。DEBUG都是正常的。 CATCH 里如何填呢?
---华软网友回复---
try里面是一些几何计算,调用了许多其它函数
---华软网友回复---
catch(CException* e)
{
 e->ReportError();e->Delete();
}
---华软网友回复---
catch(CException* e)
{
e->ReportError(MB_ICONINFORMATION);
e->Delete(); //调这个函数就把类销毁了.
}
---华软网友回复---
然则,我发现程序基本没进CATCH里面的语句,
---华软网友回复---
VC编译器在在RELEASE模式下,会将一些东西优化了以提高程序运行速率,如果在程序中含有try,catch语句,VC会自动搜索throw代码,没搜到就会将相关东西优化了
---华软网友回复---
throw语句,才能真正起作用
---华软网友回复---
支持1楼的
---华软网友回复---
引用 11 楼 jxipynp2011 的回复:
VC编译器在在RELEASE模式下,会将一些东西优化了以提高程序运行速率,如果在程序中含有try,catch语句,VC会自动搜索throw代码,没搜到就会将相关东西优化了

学习了
---华软网友回复---
  class="deleted_message"> 该回复于2011-04-15 09:17:08被版主删除
---华软网友回复---
如果能固定重现,当尝试运行带调试信息的 release 版本,看看问题出现在什么地方。
---华软网友回复---
  class="deleted_message"> 该回复于2011-04-15 09:25:34被版主删除
---华软网友回复---
楼主单步调试看看,应该不是try catch 问题

---华软网友回复---
bebug下单步执行,分析出哪条语句有问题。

try...catch也不是什么异常都能抓。
---华软网友回复---
catch(CException* e)
{
 e->ReportError();e->Delete();
}

这个不行?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。