- 主题:很好奇飞机上的软件如果出现了bug怎么办
唉,那 C++ 源代码中正确的错误处理机制是啥?
C 风格的 if+cerr+exit ? 不理解,作为另一门语言,
C++ 的 C 风格部分为什么会得到追捧,还比如 std::format
【 在 shootings (shootingstars) 的大作中提到: 】
: 飞控系统大都是C的吧
: 即使C++的,大量厂商都会禁止使用try catch
--
修改:easior FROM 61.155.142.*
FROM 61.155.142.*
明白,C 程序员喜欢 C 风格,
C++ 兼容这一部分,这是个说得过去的理由。
【 在 shootings (shootingstars) 的大作中提到: 】
: 能够使用带类的C,我估计都是飞控的一大进步,绝大多数还是老老实实在用C。
--
FROM 61.155.142.*
这么说倒也合理,catch 有点像标号语句;不过刚发现它的写法是这样的
try {
//...
} catch (A) {
//...
} catch (...) {
//...
}
像 if-else-if 语句那样。只可惜,C++ 的标准异常类里提供的报错信息比较简略,
在 catch 的时候,如果有好几个地方抛同样的异常,确实比较难定位,
要是能把标准宏 __LINE__、__FILE__ 加到 throw 的信息里,可能会好点。
【 在 foliver (Oliver) 的大作中提到: 】
: 我一直反对在大型软件中使用try catch机制,因为他破坏了程序结构,让软件变得更加难以维护。
: --来自微水木3.5.11
--
修改:easior FROM 61.155.142.*
FROM 61.155.142.*
这难道就是硬件防火墙?你这个是防止被黑的吧。
异常处理关心的是程序本身的漏洞。
【 在 moudy (moudy) 的大作中提到: 】
: safety相关的玩意是不会依赖每个app自己来预防bug的。
: 有配套的软硬件机制。比如每100ms就有个专用进程把硬件关建寄存器校验一遍。或者100ms你不给watchdog报道就重启一同。
--
FROM 61.155.142.*