错误 -5

来源:互联网 发布:在职研修班网络班 编辑:程序博客网 时间:2024/05/17 04:02

1.链接时出错
在调用未定义的函数时会出错的。

而具有相同名称但是类型不同的函数并不会被匹配。

比如如果我们需要:
int area(int x,int y)
{

}
则double area(double x,double y){…}
和int area(char x,char y){…}都是不会被匹配的。


2.异常
基本思想:把错误检测(在被调函数中完成)和错误处理(在主调函数中完成)分离。
如果一个函数发现一个自己不能处理的错误,它不是正常的返回,而是进行抛出一个异常来表示错误的发生。
函数使用太try语句来对异常进行处理:把所要处理的异常情况罗列在catch语句之后。

runtime_error:
包含一个字符串,可以被错误处理函数使用。
例如,错误处理函数error(s)可以被写成:

void error(string s){    throw runtime_error(s);}

当我们想处理runtime_error时,只要捕捉到它就行了。
例如:

int main()try{....//所要运行的主程序return 0;//0表示成功}catch(runtime_error&e)//&表示我们希望以引用的方式传递异常{    cerr<<"runtime_error:"<<e.what()<<'\n';//cerr与cout的用法相似,只是它是专门用于错误的输出的,其中e.what()将从runtime_error中提取出错误信息    keep_window_open();    return 1;//1表示失败}

对于runtime_error和out_of_range这两种异常,其二者的公共基类是exception,因此,当写成:

catch(exception&e){...}

这样就可以捕捉这两种类型的异常了。

一般来说,当返回值为0则表示main()成功完成了,而非0的返回值则表示某些错误发生了

原创粉丝点击