在这里首先要感谢网络共享的伟大,以至于当出现问题后,根据资源共享原则,很容易解决所遇到的问题
还和原先一样,对问题的描述分三大部分:
问题的提出
最近由于程序太过于庞大,而且由于有时考虑不周或者程序书写不规范,致使偶尔出现当机,因此想加入try...catch来进行捕捉,这样问题就来了
问题一:
try ... catch没反应,写了try...catch后没进入,
问题的剖析:遇到这类问题是由于在编译的时候,由于程序进行了优化,故在try...catch中没有使用throw,即编译器将屏蔽try ...catch语句
问题的解决:在编译命令行中加入 /EHa 的参数。这样VC编译器不会把try catch模块给优化掉了。
还有另一种解决方案:
就是用_try __except结构,这样在代码优化过程中将捕获这个异常,但是...
用__try, __except块还有问题, 就是这个不是C++标准, 而是Windows平台特有的扩展。而且如果在使用过程中涉及局部对象析构函数的调用,还有就是如果在类中出现异常,用__try, __except块将出现未知异常错误,
故在编译命令行中加入 /EHa 的参数。这样VC编译器不会把try catch模块给优化掉了应该是最好的解决方案了。
但是还存在别的问题,不过这就需要另行解决了