![]() |
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退出。在这条线索的帮助下,我意识到在非常罕见的情况下,即使线程在工作,我也会关闭线程的句柄。为什么它会在连接时退出?这也有一个解释,但它与代码的结构有关,这里可能很难解释。 谢谢大家,在例外问题上和我一起集思广益:$。 |
![]() |
Konvt · 标准库中异常构造函数参数类型问题 5 月前 |
![]() |
EarthTurtle · 调整泛型抛出迭代器的异常类型 11 月前 |
![]() |
ê¹ë¯¼ì¬ · 在六边形的建筑中,例外情况应该扔到哪里? 1 年前 |
|
tariqalr · 带有try-catch块的无限循环的编译和返回值 1 年前 |
![]() |
CheezGuy · Python尝试/不停止错误除外 1 年前 |