C++中函数异常规格的说明

论坛 期权论坛 期权     
C语言与C++编程   2019-7-14 18:08   4322   0
作者:子宇24
链接:https://www.cnblogs.com/dishengAndziyu/p/10920150.html
1、本文介绍一个新的概念,它是一个重要的概念,并且是 C++ 中的一个高级主题;

2、问题:

  • 如何判断一个函数(不是自己写的,有可能是第三方库中的函数)是否会抛出异常,以及抛出那些异常?
    学习了异常处理,我们在调用一个函数的时候,就应该知道这个函数会不会抛出异常,如果会,抛那些:
  • 如果是第三方库的函数,只有函数声明,没有函数实现,则也不知道会不会抛出异常;
  • 查看函数文档也是不错的方法,但是如果手头文档和真实的库的版本不匹配,有可能查到的东西就是不准确的;
   
3、异常规格说明:

  • C++ 提供语法用于声明函数所抛出的异常;
  • 异常声明作为函数声明的修饰符,写在参数列表后面:
    /* 可能抛出任何异常 */
  1.           void func1();
  2.           /* 只能抛出的异常类型:char 和 int */
  3.           void func2() throw(char, int);
  4.           /* 不抛出任何异常 */
  5.           void func3() throw();
复制代码
4、异常规格说明的意义:

  • 提示函数调用者必须做好异常处理的准备;
    如果想知道调用的函数会抛出哪些类型的异常时,只用打开头文件看看这个函数是怎么声明的就可以了;
  • 提示函数的维护者不要抛出其它异常;
  • 异常规格说明是函数接口的一部分;
    用于说明这个函数如何正确的使用;
   
5、如果抛出的异常不在声明列表中,会发生什么?

6、下面的代码输出什么?




7、异常规格之外的异常编程实验:

[code]#include

using namespace std;

void func() throw(int)
{
    cout
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:200
帖子:40
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP