Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++错误消息输出格式_C++_Design Patterns - Fatal编程技术网

C++错误消息输出格式

C++错误消息输出格式,c++,design-patterns,C++,Design Patterns,如果我想在解释器中触发错误,我调用此函数: Error( ErrorType type, ErrorSeverity severity, const char* msg, int line ); 然而,有了它,我只能输出 Name error: Undefined variable in line 1 而不是 Name error: Undefined variable 'someVariableName' in line 1 除了错误消息之外,我完全使用字符串,因为它们目前都是常量,所以

如果我想在解释器中触发错误,我调用此函数:

Error( ErrorType type, ErrorSeverity severity, const char* msg, int line );
然而,有了它,我只能输出

Name error: Undefined variable in line 1
而不是

Name error: Undefined variable 'someVariableName' in line 1
除了错误消息之外,我完全使用字符串,因为它们目前都是常量,所以sprintf不起作用

创建一个有效的错误函数的最佳方法是什么?该函数可以输出一个常量消息,并结合一个字符串来描述触发错误的对象,例如:一个不存在的变量?

这是C++,所以您可以用一个额外的参数来重载函数来提供变量名。然后,我将使用std::stringstream来格式化消息。在报告错误时,不必担心效率,因为它们应该是罕见的,不影响应用程序的整体性能。

< P>这是C++,因此您可以用额外的参数重载函数以提供变量名。然后,我将使用std::stringstream来格式化消息。报告错误时无需担心效率,因为错误应该很少,并且不会影响应用程序的整体性能。

使用错误函数上的宏来生成消息

例如:

#define ERROR(var, msg) error(0, 1, #var " -> " msg, __LINE__)
#define WARNING(var, msg) error(0, 2, #var " -> " msg, __LINE__)

使用错误函数上的宏生成消息

例如:

#define ERROR(var, msg) error(0, 1, #var " -> " msg, __LINE__)
#define WARNING(var, msg) error(0, 2, #var " -> " msg, __LINE__)

什么是误差函数?请给我一些密码。使用…错误类型、错误严重性、常量字符*消息、整数行的示例;什么是误差函数?请给我一些密码。使用…错误类型、错误严重性、常量字符*消息、整数行的示例;