首页 >后端开发 >C++ >异常说明符在现代 C 中仍然相关吗?

异常说明符在现代 C 中仍然相关吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 03:47:02835浏览

Are Exception Specifiers Still Relevant in Modern C  ?

我应该在 C 中加入异常说明符吗?

C 中的异常说明符允许函数指示它们是否可能抛出异常,例如:

虽然这些说明符可以传达意图,但由于以下几个因素,它们的实际使用存在疑问:

执行限制

编译器并不严格执行强制执行异常说明符,降低其有效性。理想的行为会涉及违反规范的编译错误,但这并不能保证。

对违规行为的严厉惩罚

如果函数违反异常说明符,标准行为是终止程序。这种严厉的响应可能并不适合所有情况。

开发环境中不一致的处理

某些开发环境,例如 VS.Net,将 throw(X) 视为throw(...),破坏了对标准的遵守。

反对异常说明符的争论

除了上述问题之外,还有几个观点主张反对使用异常说明符:

  • 与模板的兼容性:由于不可预测的异常行为,异常规范可能会阻碍模板代码的开发。
  • 禁止扩展性: 指定预期的异常可能会限制代码随时间的演变。
  • 与遗留代码的兼容性:处理遗留代码使得很难预测可能的异常,可能导致程序终止。
  • 关注错误处理:重点应放在返回常见错误并为特殊情况保留异常。

何时异常说明符可能有用

尽管一般建议不要使用异常说明符,但在以下情况下它们仍然是有益的:

  • 库仅抛出自己的异常,从而允许明确的意图规范。然而,这种用例在实践中很少见。

以上是异常说明符在现代 C 中仍然相关吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn