1

我正在拼命尝试在 C(++) 中定义自定义错误代码。

至于我正在从事的项目,禁止使用异常和信号以及任何其他可以分配动态内存的方法。

我对一些产生类似错误的方法使用了标准错误代码,但对于某些方法,错误是特定于操作系统提供的标准错误代码所涵盖的。

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

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

最好的问候, ahnimuhs

4

2 回答 2

2

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

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

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

static const char* Description(const t_type& pError) {
  switch(pError) {
...
}
于 2012-05-29T13:34:54.807 回答
1

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

您必须提供一个_user_strerror()函数并在__ELASTERROR.

于 2012-05-29T13:42:23.647 回答