zoukankan      html  css  js  c++  java
  • C++函数声明后面加throw()的作用

    原文地址:https://blog.csdn.net/to_baidu/article/details/53763683

    C++里面为什么有时候在函数声明的时候在后面加throw()关键字?

    解释:

    C++函数后面加关键字throw(something)限制,是对这个函数的异常安全作出限制;这是一种异常规范,只会出现在声明函数时,表示这个函数可能抛出任何类型的异常。

    void fun() throw();      //表示fun函数不允许抛出任何异常,即fun函数是异常安全的。

    void fun() throw(...);    //表示fun函数可以抛出任何形式的异常。

    void fun() throw(exceptionType);    // 表示fun函数只能抛出exceptionType类型的异常。

    举例说明:

    void GetTag() throw(int);                     // 表示只抛出int类型异常
    void GetTag() throw(int,char);         // 表示抛出in,char类型异常
    void GetTag() throw();                         // 表示不会抛出任何类型异常
    void GetTag() throw(...);                      // 表示抛出任何类型异常

    void GetTag() throw(int); 表示只抛出int类型异常,并不表示一定会抛出异常,但是一旦抛出异常只会抛出int类型,如果抛出非int类型异常,调用unexsetpion()函数,退出程序。

    void GetTag() throw();  假如你加一个throw()属性到你的永远不会抛出异常的函数中,编译器会非常聪明的知道代码的意图和决定优化方式。

  • 相关阅读:
    [LeetCode] 67. 二进制求和
    [LeetCode] 66. 加一
    [LeetCode] 65. 有效数字
    [LeetCode] 63. 不同路径 II
    [LeetCode] 64. 最小路径和
    [LeetCode] 61. 旋转链表
    [LeetCode] 62. 不同路径
    [LeetCode] 59. 螺旋矩阵 II
    [LeetCode] 60. 第k个排列
    [LeetCode] 58. 最后一个单词的长度
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/11575154.html
Copyright © 2011-2022 走看看