所以,我有一大块遗留软件,用C语言编写.它适用于嵌入式系统,所以如果出现问题,比如除零,空指针取消引用等,除了重启之外没什么可做的.
我想知道我是否可以将main()实现为c ++并将其内容包装在try/catch中.这样,根据抛出的异常类型,我可以在重启之前记录一些调试信息.
嗯,因为有多个进程我可能需要包装每个进程,而不仅仅是main(),但我希望你看到我的意思......
是否值得将现有的C代码(几个100 Klocs)保持不变,除了用try/catch包装它?
除零或空指针解除引用不会产生异常(使用C++术语).C甚至没有例外的概念.如果你是一个类UNIX系统上,你可能需要安装信号处理(SIGFPE
,SIGSEGV
,等).