c++ 异常处理(try catch throw)、命名空间

一、c++工具

      模板(函数模板、类模板)、异常处理、命名空间等功能是c++编译器的功能,语言本身不自带,这些功能已经成为ANSI C++标准了,建议所有的编译器都带这些功能,早期的c++是没有这些功能的。

二、异常处理

try:检查

catch:捕捉

throw:抛出

用法如下:

try

{

    //可能出错的语句

    //可以含有throw

}

catch(类型)

{

    //如果try出错了就走catch,不出错就跳过catch

}

注意:

1.catch后要指定类型,比如catch(int)、catch(double)等,也可以catch(int x)、catch(double y),这样就同时拷贝了throw出来的值;

2.throw是throw变量,如throw a,a可以是int型、double型的变量,也可以是自己定义的类对象,throw和catch的类型要对应上,执行throw语句后立刻跳出该函数;

3.try和catch是整体,catch不能单独使用,try可以单独使用,如果都有,二者必须紧挨,不能在中间插入别的语句,try只能有一个,catch可以有多个,以便匹配不同的异常,如:

try

{}

catch(int)

{}

catch(double)

{}

catch(char)

{}

4.catch(...)可以捕捉任何异常,一般这种catch、语句放在最后;

三、命名空间

1.目的:命名空间是为了解决全局变量的同名冲突问题,c语言没有,c++才有;

2.命名空间可以包含变量、结构体、函数、类等,也可以嵌套,即命名空间里的命名空间;

3.可以自己定义命名空间,还是当作全局变量使用,namespace ns1 {... },用的时候ns1::xxxxx;若前面有using namespace xxx,则不用加ns1::;

4.命名空间可以没有名字,即namespace {  ...},这样就不能在别的文件中引用了,只能用于本文件,类似于static的功能,static是c语言留下来的;

5.标准c++库,即iostream里的东西都是在命名空间std里定义的;

6.c语言的头文件带.h,c++不带,但是前面要加c。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值