开发环境VS2012 ,编译选项已设置为\Eha ,下面的try catch处理中有些异常捕获不到,修改为__try{…….} __except(XXXX) {……}
也不能捕获全部异常。
try {
……
} catch(XXXXexception ) {
……
} catch(…) {
……
}
问一下怎么样才能捕获全部的异常?
谢谢!
也不能捕获全部异常。
try {
……
} catch(XXXXexception ) {
……
} catch(…) {
……
}
问一下怎么样才能捕获全部的异常?
谢谢!
解决方案
40
不能捕获全部异常。
你用SEH的语法吧。用标准c++异常这个基本就没什么太多的用。
应该在可能出现异常的代码进行安全性检查,例如对指针的check,Assert等方式
你用SEH的语法吧。用标准c++异常这个基本就没什么太多的用。
应该在可能出现异常的代码进行安全性检查,例如对指针的check,Assert等方式
30
例如捕获洪水淹没办公室或机房这种异常?!
30
可以使用
se_translator_function _set_se_translator(
_se_translator_function seTransFunction
);
将SEH异常转化为c++异常,从而可以使用c++的异常语法来捕捉windows的SEH异常
se_translator_function _set_se_translator(
_se_translator_function seTransFunction
);
将SEH异常转化为c++异常,从而可以使用c++的异常语法来捕捉windows的SEH异常
40
memcpy最后一个参数的类型是无符号的,你用-1会进行隐式转换
http://en.cppreference.com/w/cpp/string/byte/memcpy