GSL的错误处理

错误处理

       本章介绍GSL函数报告和处理错误的方式。通过检查每个函数返回的状态信息,您可以确定它执行是成功还是失败,如果失败了,您可以找出失败的准确原因。您还可以定义自己的错误处理函数来修改库的默认行为。

    本节中描述的功能在头文件gsl_errno.h中声明。

3.1 错误报告

    本库遵循POSIX线程库的线程安全错误报告约定。函数返回非零错误代码以指示错误,返回0以指示成功:

int status = gsl_function(...)
if (status)  { /* an error occurred */
 ......
/*  status value specifies the type of error */
}

当例程不能执行向它们请求的任务时,它们就会报告一个错误。例如,一个求解根的函数如果无法收敛到请求的精度或超过迭代次数限制,将返回非零错误代码。这种情况在使用任何数学库时都是正常的,您应该检查调用的函数的返回状态。

每当例程报告错误时,返回值指定错误类型。返回值类似于C库中变量errno的值。调用者可以检查返回代码并决定要采取什么操作,包括在不严重时忽略错误。

       除了通过返回代码报告错误外,本库还具有错误处理程序函数gsl_error()。当其他库函数报告错误时,在返回调用方之前,其他库函数会调用此函数。错误处理程序的默认行为是打印消息并中止程序。

gsl: file.c:67: ERROR: invalid argument supplied by user
Default GSL error handler invoked.
Aborted

gsl_error()处理程序的目的是提供一个函数,在该函数中可以设置一个断点,当在调试模式下运行时,该断点将捕获库错误。它不用于产品程序中,产品程序应使用返回代码处理任一错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值