gpt4 book ai didi

c++ - 捕获异常后无法决定打印什么消息

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:38 24 4
gpt4 key购买 nike

这是代码:

#include <iostream>
#include <exception>

using namespace std;

class excp1:exception
{
public:
virtual const char* what() const throw()
{
return "Bad ass exception";
}
};


int main(int argc, char **argv)
{
try
{
if(1!=0)
throw new excp1();
}
catch(excp1& e)
{
cerr<<e.what();
}
return 0;
}

但它不会打印我已经放入的返回值(“Bad ass exception”),而是打印:

Terminate called after throwing an instance of' excp1*'
Aborted

如何设法打印出我想要的东西?

最佳答案

您应该按值抛出异常并按引用捕获它。

你应该有:

throw excp1();

使用动态内存分配抛出指针类型会泄漏内存并导致未定义的行为

关于c++ - 捕获异常后无法决定打印什么消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com