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__)
什么是误差函数?请给我一些密码。使用…错误类型、错误严重性、常量字符*消息、整数行的示例;什么是误差函数?请给我一些密码。使用…错误类型、错误严重性、常量字符*消息、整数行的示例;