gpt4 book ai didi

c++ - 抛出异常并忽略 "reaches end of non-void function"警告是否不好?

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:19 26 4
gpt4 key购买 nike

我的代码:

QSerialPortInfo getCentralInfo()
{
const QList<QSerialPortInfo> infoList =
QSerialPortInfo::availablePorts();
for (auto it = infoList.cbegin();
it != infoList.cend(); ++it) {
if (it->manufacturer() == "1a86") {
happyTalk("Znaleziono centralkę.");
return *it;
}
}
escape("Nie znaleziono centralki.");
}

void escape(QString errorMsg) {
qDebug() << "[!] " << errorMsg;
throw;
}

void happyTalk(QString msg) {
qDebug() << "[\u2713] " << msg;
}

这样停止应用程序是否优雅,为什么不呢?我收到调试器警告,但我认为这里的调试器是错误的。 ;-)

最佳答案

escape中添加[[noreturn]]属性,实际抛出一个对象。

[[noreturn]] 告诉编译器、优化器并希望警告生成器 escape 永远不会返回,因此它应该(在理想世界中)阻止该错误。

关于c++ - 抛出异常并忽略 "reaches end of non-void function"警告是否不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com