如何修复C++ try/catch异常代码以正确输出C字符串错误信息?
修复方案
你的代码存在三个明显问题,逐一修正后就能正常运行:
变量类型错误
字符串字面量"Error!"的类型是const char*,不能赋值给单个char变量,这会直接触发编译错误,需要把变量类型改成const char*。抛出与捕获的类型不匹配
你抛出的是const char*类型的指针,但捕获时用的是char* &(非const指针的引用),非const引用无法绑定到const对象,两者类型不兼容,需要把捕获的类型改成const char*或者const char* &。拼写错误
court是笔误,应该是cout,同时要确保代码开头包含了<iostream>头文件,否则无法使用cout输出。
修复后的完整代码示例:
#include <iostream> using namespace std; int main() { try { const char* message = "Error!"; throw message; } catch (const char* e) { cout << e << endl; return 0; } }
如果不想使用using namespace std;,可以改成std::cout:
#include <iostream> int main() { try { const char* message = "Error!"; throw message; } catch (const char* e) { std::cout << e << std::endl; return 0; } }
内容的提问来源于stack exchange,提问作者user20752511
相关产品推荐
相关产品推荐

