WEB开发网
开发学院软件开发VC 捕获数学函数异常 阅读

捕获数学函数异常

 2010-01-23 20:32:27 来源:WEB开发网   
核心提示:编译、运行,结果为-0.813008Error function name is powThe varianbles arg1=-1.23,arg2=-1.1The error type = _SINGThe error value=-1.#INDAfter handling error value=12341234P

编译、运行,结果为

-0.813008

Error function name is pow

The varianbles arg1=-1.23,arg2=-1.1

The error type = _SING

The error value=-1.#IND

After handling error value=1234

1234

Press any key to continue

第一行为-1.23的倒数,第二~六两行是_matherr函数的输出,第七行是主函数的输出。

也许有人会说,main函数并没有调用_matherr函数,为什么会出现这种情况呢?这就是VC++编译器为我们做的事情了。它很有可能在数学函数中设置了跳转来实现异常处理,当数学库中的符点函数探测到一个错误时,就调用此函数。下面是有关_matherr函数的一些说明:

1、返回值:类型是整型的。按惯例,0返回值用来标志一个错误,非0值标志成功。如果返回0,则错误信息可被显示,错误序号被正确设置。如果返回非0值,没有显示错误信息,错误序号也保持不变。

2、参数:except指针指向一个包含错误信息的结构 struct _exception。

_exception结构包含有如下数据成员:

int type 异常类型;

char *name 出错函数名;

double arg1, arg2 函数的第一和第二(如果有的话)参数;

double retval 函数的返回值。

Tags:捕获 数学 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接