面对Dev C ++中的问题,其中catch块未显示所需的错误消息
#include<iostream>
using namespace std;
void mightGoWrong()
{
bool error1;
bool error2;
if(error1)
{
throw "Issue encountered!!";
}
}
int main(void)
{
try
{
mightGoWrong();
}
catch(int e)
{
cout << "Error Code is: "<<e<<endl;
}
cout<<"Still running"<<endl;
}
消息是:仍在运行。需要知道我做错了什么
答案 0 :(得分:0)
您需要在代码开始工作之前初始化布尔变量。
最佳做法是始终为变量赋予一些默认值。您的error1值没有赋值给它,因此抛出错误永远不会完成它的工作。
此外,您正在抛出一个字符串,因此您需要捕获一个不是int的字符串。
void mightGoWrong()
{
bool error1=true;
bool error2=true;
if(error1)
{
throw "Issue encountered!!";
}
}
int main(void)
{
try
{
mightGoWrong();
}
catch(string e)
{
cout << "Error Code is: "<<e<<endl;
}
cout<<"Still running"<<endl;
}