源码在vs上编译通过,在Ubuntu下编译提示:Error no matching function for call to 'std::exception::exception(const char [21]),源码如下:
#include <iostream>
#include <exception>
using namespace std;
int main()
{
try
{
throw exception("linux exception test");
}
catch(const std::exception& exc)
{
cout << exc.what() <<endl;
}
return 0;
}
解决方案如下所示:
#include <iostream>
#include <stdexcept> // 1. 更换包含头文件
using namespace std;
int main()
{
try
{
throw logic_error("linux exception test"); // 2. 更换抛出的异常类型
}
catch(const std::exception& exc)
{
cout << exc.what() <<endl;
}
return 0;
}