5G影院5G天天爽

核心内容摘要

赵丽颖换脸:当演技遇上黑科技,一场颠覆性的视觉盛宴
甜度爆表!这穿上就不想脱的“糖logo”白桃少女牛仔裤,到底藏了多少心机美照?

狂飙不羁!“暴躁BBBBBBBBBBBB”:情绪的野兽,还是释放的信号?

Windows SEH之全局展开这里说说SEH中让人费解的全局展开部分。

在此之前先复习一下结构化异常处理的流程当异常过滤程序的计算结果为EXCEPTION_EXECUTE_HANDLER时系统会执行全局展开。

下面这张图片展示了全局展开的流程图对应上图中全局展开的部分当一个异常出现的时候会从检查当前异常的try块是否可以处理该异常也就是看看是不是有except块且Filter的计算结果是否为EXCEPTION_EXECUTE_HANDLER如果不可以则检查当前try块中是否有finally块有则执行然后沿着调用链向上查找也就是看看上级函数中是否有try-except块可以处理该异常。

如果找到可以处理该异常的except块则执行异常处理程序执行结束后从异常处理程序的下一条语句开始继续运行。

示例分析一下面来看一个例子#includeiostream#includeWindows.hintExceptionFilter(){std::coutExceptionFilterstd::endl;returnEXCEPTION_EXECUTE_HANDLER;}voidfuncA(){__try{std::coutfuncA trystd::endl;// exception*(PBYTE)NULL5;std::coutfuncA try endstd::endl;}__except(ExceptionFilter()){std::coutfuncA ExceptionFilterstd::endl;}}voidfuncB(){__try{std::coutfuncB trystd::endl;funcA();std::coutfuncB try endstd::endl;}__finally{std::coutfuncB finallystd::endl;}}voidfuncC(){__try{std::coutfuncC trystd::endl;funcB();std::coutfuncC try endstd::endl;}__finally{std::coutfuncC finallystd::endl;}}intmain(intargc,charconst*argv[]){// C - B - AfuncC();return0;}运行结果如下示例分析二#includeiostream#includeWindows.hintExceptionFilter(){std::coutExceptionFilterstd::endl;returnEXCEPTION_EXECUTE_HANDLER;}voidfuncA(){__try{std::coutfuncA trystd::endl;// exception*(PBYTE)NULL5;std::coutfuncA try endstd::endl;}__finally{std::coutfuncA finallystd::endl;}}voidfuncB(){__try{std::coutfuncB trystd::endl;funcA();std::coutfuncB try endstd::endl;}__except(ExceptionFilter()){std::coutfuncB ExceptionFilterstd::endl;}}voidfuncC(){__try{std::coutfuncC trystd::endl;funcB();std::coutfuncC try endstd::endl;}__finally{std::coutfuncC finallystd::endl;}}intmain(intargc,charconst*argv[]){// C - B - AfuncC();return0;}运行结果如下

靠逼网站下载-靠逼网站下载应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123