我们采用C++开发了一套软件,该软件经常莫名其妙崩溃,是不是有异常未捕获或未处理啊。
因为我查看源码,没有发现一处try...catch语句。
请问高手们像这种情况我所有方法都加上异常处理能解决问题么?
(注:有部分崩溃原因可能是调用了第三方的库)
崩溃了一定是你代码的问题,不要怀疑C++.
建议写一套崩溃时输出堆栈的代码,你网上搜下MiniDumpWriteDump
异常处理是针对不同的状态进行不同的处理。能恢复的错误就继续运行,不能恢复的就退出吧。
建议检查一下使用过的资源是否及时释放
你有源码的条件下,当然是先用 debug 版本的找到出错误的原因。对于一般的错误可以追踪到某个文件的某行,这样可以通过调用堆栈找到错误。这类错误是比较容易修正的。
真正比较麻烦的是内存意外越界导致的运行时错误,这类错误不能跟踪到任何具体位置,所以这类错误是最难查出问题的。
打log,然后根据log定位什么操作会使程序dump