错误 -5

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的返回值则表示某些错误发生了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值