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

    看代码时候看到fun() throw()的用法,找到一篇blog解释很简单,如下:

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

  • 相关阅读:
    百度小程序优化总结
    Java程序线上故障排查
    常用文本处理命令
    命令行笔记
    Java对象深拷贝浅拷贝总结
    SSH命令总结
    linux学习问题总结
    linux进程管理总结
    Java网络编程中异步编程的理解
    JVM内存管理的一些思考
  • 原文地址:https://www.cnblogs.com/space-place/p/7637924.html
Copyright © 2011-2022 走看看