WINAPI SetLastError()
和C++关键字throw
有什么区别?例如,SetLastError(5);
和throw 5;
是一样的吗?WINAPI SetLastError与C++ Keword Throw
0
A
回答
8
SetLastError设置一个简单的全局变量,它对程序的流程没有任何影响。
throw会停止正在运行的程序的流程,展开堆栈直到它被try - catch子句捕获到某处。程序流程将在捕获结束时继续。
我建议阅读this文章,它解释了例外的概念。并阅读C++异常。
- 此外,不要抛出5,抛出一个非内置对象,最好由std :: exception继承。一个对象可以包含一些告诉catch子句如何处理错误的状态。
4
throw
引发被catch
块捕获的异常并且是C++语言的一部分。 SetLastError()
是Microsoft的Windows特定API的一部分,它更改了GetLastError()
返回的值。换句话说,它们完全不同!抛出异常展开堆栈(调用所有局部变量的析构函数)并将程序执行移动到适当的catch块。 SetLastError()
没有这样做,它只是一个API函数。
相关问题
- 1. C++输入与WINAPI
- 2. C++ deque throw Segfaults
- 3. 问题与Windows服务(C++,WinAPI的)
- 4. 的DllImport - PreserverSig和SetLastError属性
- 5. C库vs WinApi
- 6. C++ WinAPI waveOutGetVolume
- 7. c winapi声明#
- 8. Declare-and-throw与throw-without-being-being-declared例外
- 9. module.js:471 throw err;
- 10. module.js 474 throw err
- 11. P/Invoke throw System.ExecutionEngineException
- 12. 保留后@throw
- 13. C++ WINAPI窗口不刷新
- 14. 如何使用WINAPI(C++)
- 15. UI布局噩梦与WinAPI
- 16. 在C++中的内联throw()方法
- 17. throw checked与Mockito的嘲讽例外
- 18. 调用C++“INT WINAPI _tWinMain”从C#
- 19. 鼠标状态在C++中使用WINAPI WINAPI
- 20. throw-catch逻辑
- 21. EditText aftertextchanged throw StackOverflowError
- 22. Try {} Catch(exception){throw}
- 23. 。 (WINAPI)
- 24. 函数getline与WINAPI - 使用WOFSTREAM/WIFSTREAM - C++/WIN32
- 25. 获取与WINAPI在C过程状态(活跃)
- 26. Jedis Pipeline Multi throw ClassCastException
- 27. If-Then-Throw模式?
- 28. nodejs error:module.js:340 throw err;
- 29. property.GetValue(dynamictype,null)throw RuntimeBinderException
- 30. C++ WinAPI保存和打开对话框