1
2
并不是所有的错误都会引发C++异常,这些异常会被C++尝试捕获机制捕获。例如,除以零不会引发C++异常,但会导致未定义的行为,这可能会使您的应用程序退出。 但是,您的代码可能是抛出不是STD::异常的东西,所以您可能想重写:
它会处理像
而且,与问题无关,通常应该通过const引用捕获异常。 |
2
1
是的,SEH例外。要抓住他们你要么用
|
3
1
找到问题的最简单方法是在调试器下运行应用程序,并在win32异常上启用中断。每当遇到win32异常时,应用程序都会闯入调试器,您可以找出哪里出错了。 如果不进行调试并要捕获win32结构化异常,则必须使用 _set_se_translator 用于设置转换函数的API。每当有Win32异常时,就会调用注册函数,并有机会将其转换为您选择的C++异常。 |
4
1
它不捕获C++异常。
不
从那个类派生(如果我是
Windows使用结构化异常处理(SEH)来发出错误,而这些错误并不是用普通C++来捕获的。
The docs 对如何捕获seh异常有一个很好的解释。 |
5
0
我发现了一条重要线索。使用close handle函数关闭句柄时,线程将以代码0xcccccccc退出。在这条线索的帮助下,我意识到在非常罕见的情况下,即使线程在工作,我也会关闭线程的句柄。为什么它会在连接时退出?这也有一个解释,但它与代码的结构有关,这里可能很难解释。 谢谢大家,在例外问题上和我一起集思广益:$。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |