所以,我有一大块遗留软件,用 C 编码。它用于嵌入式系统,所以如果出现问题,比如被零除、空指针取消引用等,除了重启之外没有什么可做的。
我想知道我是否可以只将 main() 实现为 c++ 并将其内容包装在 try/catch 中。这样,根据抛出的异常类型,我可以在重启前记录一些调试信息。
嗯,因为有多个进程,我可能必须包装每个进程,而不仅仅是 main(),但我希望你明白我的意思...
是否值得保留现有的 C 代码(几个 100 Kloc)不变,除了用 try/catch 包装它?
最佳答案
除以零或空指针取消引用不会产生异常(使用 C++ 术语)。 C甚至没有异常的概念。如果您使用的是类 UNIX 系统,则可能需要安装信号处理程序(SIGFPE
、SIGSEGV
等)。
关于c++ - 在 C++ 中包装 C,仅用于 try/catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559006/