首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于捕获错误的有关问题

2012-02-05 
关于捕获异常的问题代码如下:#includeiostream#includebitsetusingnamespacestdintmain(){bitset 10

关于捕获异常的问题
代码如下:
#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。

热点排行