【问题标题】:How to define custom error codes in C(++)如何在 C(++) 中定义自定义错误代码
【发布时间】:2012-06-03 17:37:30
【问题描述】:

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

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

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

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

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

最好的问候, 呵呵

【问题讨论】:

  • 这些错误代码是否需要是“标准”错误代码?如果没有,那为什么不直接定义并返回您自己的错误代码?
  • 无动态内存限制不排除异常。在这个时代,在我看来,不使用异常是没有意义的。

标签: c++ c error-code


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这很有趣,我试图为此找到一些资源,但除了你已经写的链接之外找不到任何信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多