【发布时间】:2012-11-21 16:23:17
【问题描述】:
我知道拥有全局变量并不受欢迎。但是在 Bjarne Stroustrup 所著的《C++ 编程语言》一书中,作者说“在从非本地静态对象的初始化程序抛出的情况下获得控制的唯一方法是 set_unexpected()”。是怎么做到的?
【问题讨论】:
-
这是一个很好的问题,不敢相信它已经开放了 2 天而没有任何评论!
-
@j_random_hacker,一旦它从
newest的顶部掉下来,它(通常)和丢失一样好 -
我想如果你在主函数之外抛出一个对象,最好使用 set_terminate 而不是 set_unexpected。因为 terminate() 是在 try/catch 块之外抛出异常时调用的函数,除非您在不在此函数异常规范列表中的类型的函数内抛出 excption 对象。
标签: c++ exception-handling constructor global