zoukankan      html  css  js  c++  java
  • 函数后面加throw关键字

    【1】为什么函数后面加throw关键字?

    C++函数后面加关键字throw(something)限制,是对这个函数的异常安全性作出限制。

    举例及解释如下:

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

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

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

     

    还不明白吗?看这个解释(一个形象笑话):

    throw()   大概会说:“噢,不管你抛什么,就是不准抛。”

    throw(...)   呵呵一笑,满脸慈祥:“抛吧抛吧,尽情地抛吧。”

    throw(type)   一听急了:“那可不行,要抛也只能抛我的香烟头,否则要是不小心把俺祖传的金戒指抛掉就太亏了。”

     

    尤其注意这是异常规范,只会出现在声明函数中,表示这个函数可能抛出任何类型的异常。

     

    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()函数,退出程序。

     

    Good Good Study, Day Day Up.

    顺序  选择  循环  总结

  • 相关阅读:
    codevs 1069关押罪犯
    codevs 1497取余运算
    codevs 3324 新斯诺克
    codevs 3286 火柴排队
    继续畅通工程
    还是畅通工程
    畅通工程(并查集找根节点)
    Eddy's picture(最小生成树)
    Constructing Roads(最小生成树)
    Codeforces Round #383 (Div. 2)C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/Braveliu/p/3293285.html
Copyright © 2011-2022 走看看