关于BCB6中抛出自定义异常的问题!!!(100分)

  • 主题发起人 主题发起人 mywyn
  • 开始时间 开始时间
M

mywyn

Unregistered / Unconfirmed
GUEST, unregistred user!
我的自定义异常:
class MEx
{
public:
__fastcall MEx(){ShowMessage("create ok");}
__fastcall ~MEx(void){ShowMessage("delete ok");}
};
1.如果这样:
try
{
throw MEx();
}
catch(...)
{
ShowMessage("catch Error");
}
那么 "create ok" 出现一次而 "delete ok" 出现2次

2.如果这样:
MEx e;
try
{
throw e;
}
catch(...)
{
ShowMessage("catch Error");
}
那么 "create ok" 出现一次而 "delete ok" 出现3次

可奇怪的是,如果脱离IDE直接运行或把MEx做成Exception的子类则一切正常
 
应该是设置的问题,BCB我没装,但它和delphi一样的.
在它的菜单tools->debugger options里有得设置.
 
(首先声明,对于BCB没有研究.但是<=BCB6至少还是VCL,我想原则应该是一样的)
自定义的异常最好继承自Exception,这并不是没有来由的规定,软件之所以能运行,就是需要大家遵守规则,如果你没有按照规则来,出现千奇百怪的问题很正常
当然规则并不是死的,有时候需要甚至必须跳出去,但就楼主的问题而言,我看不出这种需求
 
后退
顶部