百科问答小站 logo
百科问答小站 font logo



为什么C++在构造函数和析构函数中不能抛出异常? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

我觉得最重要的是在逻辑上,当一个对象初始化到一半时,抛了异常的话,这个对象的状态应该如何定义?

不是全未初始化,也不是初始化完成。这种中间状态是要是扩散和暴露到外部代码中,会是很麻烦的。

如果说内部再维护一套更精细的状态指标,那完全不抛异常,用isReady之类的函数封装一下这个指标来指示这个对象的现状,也没什么麻烦。




  

相关话题

  各位大佬都是怎么样学习C++的?能分享一下您的学习过程吗? 
  为什么C++头文件喜欢把一个类型通过typedef定义出无数个新名字,这有什么意义吗? 
  为什么 Linux 指针越界时程序会立即被中断,而 Windows 不会? 
  传统的try-catch异常处理是否是编程语言发展中的弯路? 
  C++过于复杂为什么不被淘汰? 
  C++ 实现接口与实现分离后,文件变得更多了,到底有什么好处? 
  这条语句违背了C++哪个原则? 
  C++ 中,如果指针换了被指向的东西,那被指向的原来的东西(是被 new 出来的)所占的内存会立刻被释放吗? 
  如何在 Linux 下利用 Vim 搭建 C/C++ 开发环境? 
  代码全是调包的,怎么申请专利? 

前一个讨论
我报了个钢琴班,8880元,上了两节课,要求退款合理吗?
下一个讨论
如何看待旧金山市议会宣布美国步枪协会为恐怖组织这一事件,它反映了美国政治的哪些问题?





© 2025-06-04 - tinynew.org. All Rights Reserved.
© 2025-06-04 - tinynew.org. 保留所有权利