读书人

关于捕获错误的有关问题

发布时间: 2012-02-05 12:07:15 作者: rapoo

关于捕获异常的问题
代码如下:
#include <iostream>
#include <bitset>
using namespace std;

int main()
{
bitset <100> bs;//定义100位的bitset对象

//将bitset对象的每一位置为1
for(size_t ix=0;ix!=bs.size();++ix)
bs[ix]=1;
try
{
bs.to_ulong();
}catch(runtime_error err)
{
cout < <err.what() < <endl;
}
system( "Pause ");
return 0;
}
用dev c++4.9.9.2编译时catch()一行有错误:
15 G:\C++\C++Primer 第四版\程序\第6章\6.24-not finished.cpp syntax error before `err '
哪位高手帮小弟解答一下!

[解决办法]
另外,捕获异常请尽量用引用:
catch(runtime_error& err)//需要修改引用对象时;
或者:
catch(const runtime_error& err)//不需要修改引用对象时。

否则,会多一次毫无意义的拷贝,而且再次抛出时甚至引起一些让人半天也查不来的小bug。

读书人网 >C++

热点推荐