求助:异常处理问题!!麻烦帮忙看下,先行谢过!!!
class CDAErr
{
public:
...
CDAErr( const char* func,
long errType,
const char* reason,
long status=0,
const char* file=NULL,
int line=0);
...
}
class Err : public CDAErr
{
public:
Err(const char* func,
long err,
const char* reason,
long status=0,
const char* file=0,
int line=0) : CDAErr(func, err, reason, status, file, line) {}
...
}
f(1)
{
...
throw Err(funcName,
CDAErr::FUNC_FAILED,
"1] String to convert into is too short.",
0,
__FILE__,
__LINE__);
...
}
f(2)
{
...
try
{
...
f(3)//在f(3)中调用到了f(1)
...
}
catch (CDAErr& err)
{
HandleException(err);//HandleException(err)是一个处理函数
}
...
}
问题是这样的:为什么程序每次运行到f(1)中的throw语句就abort调呢?为什么f(2)中的catch语句捕获不到这个异常呢?还是其它地方的问题?本人刚接触异常,还请各位高手指教。