我一直想知道,由于Qt几乎使用了标准中的所有C++特性,并且以一种奇妙和创新的方式,并且每当它不使用特定功能时,它都有一个完全有效和适用的原因.在这种情况下,为什么没有Qt类使用throw关键字和throw任何例外?他们try ... catch在我们的Qt编写代码中不需要阻塞的原因是什么?
就我个人而言,我自己也不喜欢它并且从不使用它,无论我是否正在使用Qt并始终使用错误代码并返回值而不是抛出异常对象.但为什么我不在他们的文档中看到QException类?Qt开发人员对此有何看法?
Fra*_*eld 66
主要是出于历史原因.编译器中的异常支持需要相当长的时间才能成熟.引用诺基亚的Tobias Hunger:
"当Qt启动时,Qt需要支持的所有编译器都没有例外.今天我们正在尝试保持API一致,因此具有不使用异常历史的模块通常不会使用添加的异常获取新代码你会注意到Qt的一些新模块中使用了异常."
我认为这总结了很多.
你可以在KDE devel邮件列表上阅读关于例外的一个很好的,大多是文明的辩论.由于KDE和QT是相关的,我假设同样的问题适用,(如果我正确读取线程)可以概括为:
| 归档时间: |
|
| 查看次数: |
15786 次 |
| 最近记录: |