WINAPI SetLastError与C++ Keword投掷

Jim*_*ell 0 c++ winapi exception custom-errors

WINAPI SetLastError()和C++关键字有throw什么区别?例如,是SetLastError(5);throw 5;是一样的?

dar*_*rak 8

SetLastError设置一个简单的全局变量,它对程序流没有任何作用.

throw将停止正在运行的程序的流程,展开堆栈直到它被一个try-catch子句捕获到某处.然后程序流程将从捕获结束开始继续.

我建议阅读这篇文章,它解释了例外的概念.并阅读C++异常.

  • 另外,不要抛出5,抛出一个非内置对象,最好由std :: exception继承.对象可以包含一些状态,告诉catch子句如何处理错误.