使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。 程序异常,输出信息为 error 0 ERROR 注意:不

admin2021-05-06  36

问题 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。
    程序异常,输出信息为
    error
    0
    ERROR
    注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//* * * * * * error * * * * * *的下面。
    试题程序:
#include
int main()
{
try
{
  throw("error");
  }
  //* * * * * * * *error* * * * * * * *
  catch(char s)
  {
  cout<}
try
{
  throw((int)0);
  }
  //* * * * * * * *error* * * * * * * *
catch()
{
cout<}
try
{
throw(0);
throw("error");
}
//* * * * * * * *error* * * * * * * *
catch()
{
cout<<"ERROR"<}
return 0;
}

选项

答案(1)应改为“catch(char*s)”。 (2)应改为“catch(int i)”。 (3)应改为“catch(…)”。

解析 本题中第1个标识前的异常抛出语句为“throw("error");”,其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(char s)”是字符型的,所以第2处的语句修改为“catch(char*s)”第2个标识前的异常抛出语句为“throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第1处09语句修改为“catch(int i)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为“catch(…)”。
转载请注明原文地址:https://kaotiyun.com/show/iLfp777K
0

最新回复(0)