如何在C(++)中定义自定义错误代码

时间:2012-05-29 13:25:50

标签: c++ c error-code

我拼命想用C(++)定义自定义错误代码。

至于我正在研究的项目,禁止使用Exceptions和Signals以及任何其他可以分配动态内存的方法。

我使用标准错误代码来生成一些类似于那些错误的方法,但对于某些方法,错误是特定的,由操作系统提供的标准错误代码覆盖。

我还在我的系统中搜索了错误字符串但无法找到错误消息O_O无论如何定义在哪里?

所以我正在寻找任何允许我定义自定义错误代码(例如666)和对应错误消息(“撒旦声明错误!”)的方法,这些方法将使用strerror输出。 这是可能的还是我必须干涉一些与系统相关的文件?

最好的问候, ahnimuhs

2 个答案:

答案 0 :(得分:2)

如果将枚举声明为类型,则可以满足typeafety传播的域。

然后你可以提供一个函数来访问描述作为char缓冲区(给定一个locale?,当前的语言环境?)。

class t_mon_io_error {
public:
enum t_type {
...
  SatanDeclaredAnError = 666
...
};

static const char* Description(const t_type& pError) {
  switch(pError) {
...
}

答案 1 :(得分:1)

strerror(3)的某些实现允许用户定义的错误代码和标签。

您必须提供_user_strerror()功能并在__ELASTERROR之后定义错误代码。