我们正在开发一个中型到大型 C++ 代码库,并且正在对其进行重构以使其处于更好的状态。
最近有人建议我们扩展(可能)抛出异常的函数的命名约定,以便更容易地一目了然地确定函数是否可能抛出
异常(直接或间接)通过调用抛出
的函数)。
虽然我发现能够更轻松地获取该信息会很简洁,但我无法摆脱这可能会导致麻烦的感觉,因为没有工具辅助的方法来验证和执行该约定 - 因此你不能真正依赖惯例(除了给出提示之外)。
由于我对此感到困惑和不确定,我决定从这里寻求建议:
那么,使用这样的命名约定是一个好主意/值得付出努力吗?是否有为此建立的约定?
最佳答案
它确实无法决定任何事情。这将是另一个在编程阶段无法执行的特殊约定:如果有人重构函数并忘记更改其名称,会发生什么?
如果有人由于函数可能产生的异常发生变化而被迫更改函数名称,那么您可能会由于重载解析而在程序中引入重大更改:弄乱函数名称可能会产生意想不到的副作用。
从 C++11 开始,您可以使用 noexcept
说明符,这可能会有所帮助。
关于c++ - 抛出异常的方法的命名约定(C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52775900/