【发布时间】:2015-02-05 14:03:13
【问题描述】:
这是我第一次开发足够严肃的东西,所以我必须管理错误。我想到了三种可以使用的方法:
COMDS_RETURN some_function(....)
这种方法的问题在于,有时返回指向“数据”的指针(例如指向链表的指针)更容易,但在这里,如果函数失败,我无法知道其失败的原因。
我的第二种方法是始终附加一个“错误”参数:
pointer_to_data *some_function(...., error *myerror)
但在这里我总是会在每个函数中添加额外参数的开销,并且对于某些返回错误的函数来说,最好像第一种方法一样。
好吧,第三种方法是在第一种方法之间混合使用,但这里的问题再次是库没有统一的调用/错误检查模型。对于一个函数,你必须以第一种方式执行,对于另一个函数,你必须以第二种方式执行。
我想知道这三种方法(或现有的另一种方法)之间的最佳方法是什么。
【问题讨论】:
标签: c dll error-handling