在下面的程序中,即使我有适用的catch语句,也会调用abort方法.是什么原因?
#include <iostream> #include <string> using namespace std; int main() { try { cout << "inside try\n"; throw "Text"; } catch (string x) { cout << "in catch" << x << endl; } cout << "Done with try-catch\n"; }
当我运行程序时,我只在try里面显示第一个语句,然后我收到此错误:
为什么即使在我处理字符串异常时也会调用abort?
解决方法
真的很简单!
你扔了char const *,但没有匹配的catch.
你的意思是抛出std :: string(“…”);?