我拼命想用C(++)定义自定义错误代码。
至于我正在研究的项目,禁止使用Exceptions和Signals以及任何其他可以分配动态内存的方法。
我使用标准错误代码来生成一些类似于那些错误的方法,但对于某些方法,错误是特定的,由操作系统提供的标准错误代码覆盖。
我还在我的系统中搜索了错误字符串但无法找到错误消息O_O无论如何定义在哪里?
所以我正在寻找任何允许我定义自定义错误代码(例如666)和对应错误消息(“撒旦声明错误!”)的方法,这些方法将使用strerror输出。 这是可能的还是我必须干涉一些与系统相关的文件?
最好的问候, ahnimuhs
答案 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
之后定义错误代码。