c++ - 在 C++ 中包装 C,仅用于 try/catch

标签 c++ c

所以,我有一大块遗留软件,用 C 编码。它用于嵌入式系统,所以如果出现问题,比如被零除、空指针取消引用等,除了重启之外没有什么可做的。

我想知道我是否可以只将 main() 实现为 c++ 并将其内容包装在 try/catch 中。这样,根据抛出的异常类型,我可以在重启前记录一些调试信息。

嗯,因为有多个进程,我可能必须包装每个进程,而不仅仅是 main(),但我希望你明白我的意思...

是否值得保留现有的 C 代码(几个 100 Kloc)不变,除了用 try/catch 包装它?

最佳答案

除以零或空指针取消引用不会产生异常(使用 C++ 术语)。 C甚至没有异常的概念。如果您使用的是类 UNIX 系统,则可能需要安装信号处理程序(SIGFPESIGSEGV 等)。

关于c++ - 在 C++ 中包装 C,仅用于 try/catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559006/

相关文章:

c++ - 删除 QListView 中的选定项目列表

c++ - 获取函数指针的参数计数

c - 有没有类似于字符串比较但针对整数的函数?

c - 尝试使用 typedef 结构和结构数组。为什么我会得到 "segmentation fault"?

c++ - 如何在 C++ 容器中存储不同类型的对象?

c++ - 将UTC时差转换成字符串boost

c - C 中的动态内存分配问题

c - OpenCV 中的差异图像

c - 使用代码块编写重复提示输入的 C 程序

c++ - Blowfish 加密后字符串长度不正确