青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統計

最新評論

SEH的綜合(轉)

SEH模型主要包括try-except異常處理機制和try-finally結束處理機制,而且這兩者能夠很好地有機統一起來,它們結合使用時,能夠提供給程序員非常強大、非常靈活的控制手段。其實這在上一篇文章中的幾個例子中已經使用到,這里將繼續進行系統的介紹,特別是try-except和 try-finally結合使用時的一些細節問題。

try-except和try-finally組合使用


  try-except和try-finally可以組合起來使用,它們可以是平行線性的關系,也可以是嵌套的關系。而且不僅是try-except語句中可以嵌套try-finally語句;同時try-finally語句中也可以嵌套try-except語句。所以它們的使用起來非常靈活,請看下面的代碼:

// 例程1,try-except語句與try-finally語句平行關系
#include <stdio.h>
void main()
{
puts("hello");

__try
{
int* p;
puts("__try塊中");

// 下面拋出一個異常
p = 0;
*p = 25;
}
__except(1)
{
puts("__except塊中");
}

__try
{
}
__finally
{
puts("__finally塊中");
}

puts("world");
}


// 例程2,try-except語句中嵌套try-finally
#include <stdio.h>

void main()
{
puts("hello");

__try
{
__try
{
int* p;
puts("__try塊中");

// 下面拋出一個異常
p = 0;
*p = 25;
}
__finally
{
// 這里會被執行嗎
puts("__finally塊中");
}
}
__except(1)
{
puts("__except塊中");
}

puts("world");
}


// 例程3,try-finally語句中嵌套try-except
#include <stdio.h>

void main()
{
puts("hello");

__try
{
__try
{
int* p;
puts("__try塊中");

// 下面拋出一個異常
p = 0;
*p = 25;
}
__except(1)
{
puts("__except塊中");
}
}
__finally
{
puts("__finally塊中");
}

puts("world");
}

try-except和try-finally組合使用時,需注意的事情


  在C++異常模型中,一個try block塊可以擁有多個catch block塊相對應,但是在SEH模型中,一個__try塊只能是擁有一個__except塊或一個__finally塊相對應,例如下面的程序代碼片斷是存在語法錯誤的。

// 例程1,一個__try塊,兩個__except塊
#include <stdio.h>
void main()
{
puts("hello");

__try
{
int* p;
puts("__try塊中");

// 下面拋出一個異常
p = 0;
*p = 25;
}
__except(1)
{
puts("__except塊中");
}
// 這里有語法錯誤
__except(1)
{
puts("__except塊中");
}

puts("world");
}


// 例程2,一個__try塊,兩個__finally塊
#include <stdio.h>
void main()
{
puts("hello");

__try
{
puts("__try塊中");
}
__finally
{
puts("__finally塊中");
}
// 這里有語法錯誤
__finally
{
puts("__finally塊中");
}

puts("world");
}


// 例程3,一個__try塊,對應一個__finally塊和一個__except塊
#include <stdio.h>
void main()
{
puts("hello");

__try
{
int* p;
puts("__try塊中");

// 下面拋出一個異常
p = 0;
*p = 25;
}
__finally
{
puts("__finally塊中");
}
// 這里有語法錯誤
__except(1)
{
puts("__except塊中");
}

puts("world");
}

溫過而知新

  這里給出最后一個簡單的try-except和try-finally相結合的例子,讓我們溫過而知新。代碼如下(這是MSDN中的例程):

#include "stdio.h"

void test()
{
int* p = 0x00000000; // pointer to NULL

__try
{
puts("in try");
__try
{
puts("in try");

// causes an access violation exception;
// 導致一個存儲異常
*p = 13;

// 呵呵,注意這條語句
puts("這里不會被執行到");
}
__finally
{
puts("in finally");
}

// 呵呵,注意這條語句
puts("這里也不會被執行到");
}
__except(puts("in filter 1"), 0)
{
puts("in except 1");
}
}

void main()
{
puts("hello");
__try
{
test();
}
__except(puts("in filter 2"), 1)
{
puts("in except 2");
}
puts("world");
}

上面的程序運行結果如下:
hello
in try
in try
in filter 1
in filter 2
in finally
in except 2
world
Press any key to continue

下面用圖表描述一下上面例程運行時的執行流程,如下圖所示。

http://byfiles.storage.msn.com/x1pN1mp8dKYgTFQGzKRebME6373opU2RrYhP-RNY0NuTGTVALxogHdgmzNzRzPwfASz1zkLBkeiEHATD3Jz-th2Y1hux63KBlTxb_s8coVuS6jfznoejqiLpQ



總結

 ?。?) try-except和try-finally可以組合起來使用,它們可以是平行線性的關系,也可以是嵌套的關系。而且不僅是try-except語句中可以嵌套try-finally語句;同時try-finally語句中也可以嵌套try-except語句。

   (2) 一個__try塊只能是擁有一個__except塊或一個__finally塊相對應。

  至此,關于SEH的__try、__except、__finally、__leave模型已經基本闡述完畢,但是主人公阿愚認為,有關SEH模型機制,還有一個非常關鍵的內容沒有闡述到,那就是SEH與C++異常處理模型可以結合使用嗎?如果可以的話?它們組合使用時,有什么限制嗎?或帶來什么不良后果嗎?

  大家知道,Windows平臺提供的SEH機制雖然主要是應用于C語言的程序,以便第三廠商開發出高效的設備驅動程序來。但是__try、__except、__finally、__leave模型同樣也可以在C++程序中使用,這在MSDN中已經提到,雖然微軟還是建議,在 C++程序中盡量采用C++的異常處理模型。

  但是對于廣大程序員而言,大家有必要知道,__try、__except、__finally、__leave模型在C++程序中使用時的一些限制。下一篇文章中,阿愚將把自己總結的一些經驗和體會與大家一塊分享。去看看吧!GO!

posted on 2008-01-25 19:28 大龍 閱讀(963) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲春色中文字幕| 欧美成人性网| 久久婷婷国产综合精品青草| 亚洲影院色无极综合| 欧美在线资源| 在线一区二区三区做爰视频网站| 亚洲电影在线看| 欧美日韩在线播放三区| 在线综合欧美| 亚洲一区二区三区欧美| 国产精品xxx在线观看www| 亚洲免费人成在线视频观看| 亚洲一区视频| 欧美一区1区三区3区公司| 亚洲电影av| 欧美成人免费视频| 宅男精品视频| 久久精品123| 亚洲精品日韩精品| 99精品视频一区| 国产日韩欧美麻豆| 欧美成人午夜影院| 国产精品video| 国产乱子伦一区二区三区国色天香 | 日韩性生活视频| 亚洲美女免费精品视频在线观看| 欧美午夜精品理论片a级大开眼界| 日韩亚洲精品在线| 久久精品国产2020观看福利| 1204国产成人精品视频| 亚洲日本免费| 在线成人av.com| 999亚洲国产精| 精品51国产黑色丝袜高跟鞋| 亚洲午夜激情| 1769国产精品| 亚洲性夜色噜噜噜7777| 国产乱码精品一区二区三| 欧美成人影音| 国产日产高清欧美一区二区三区| 欧美高清不卡在线| 一区二区三区在线观看视频| 99ri日韩精品视频| 午夜精品成人在线视频| 亚洲午夜精品网| 欧美 日韩 国产一区二区在线视频 | 麻豆成人91精品二区三区| 欧美日韩国产成人精品| 一区二区三区高清| 欧美肥婆在线| 玖玖视频精品| 蜜臀av性久久久久蜜臀aⅴ| 欧美在线亚洲一区| 欧美三级电影网| 亚洲精品久久久久| 黄色日韩精品| 午夜精品久久久久影视 | 在线观看亚洲a| 性做久久久久久久久| 一区二区av在线| 久久亚洲午夜电影| 欧美成人小视频| 在线播放国产一区中文字幕剧情欧美| 亚洲黄色片网站| 欧美大片在线观看一区| 美女在线一区二区| 日韩一级欧洲| 国产农村妇女毛片精品久久麻豆| 亚洲高清激情| 一区在线视频观看| 校园激情久久| 老司机一区二区| 国外成人免费视频| 亚洲欧美日韩综合国产aⅴ| 欧美色中文字幕| 亚洲一区二区视频在线| 亚洲一区美女视频在线观看免费| 欧美日韩国产123| 这里只有精品电影| 亚洲在线观看视频| 欧美日韩在线播放一区| 亚洲在线视频| 国产欧美日韩亚洲一区二区三区| 亚洲一品av免费观看| 亚洲婷婷综合色高清在线| 国产精品视频自拍| 亚洲欧美日韩国产综合在线 | 快she精品国产999| 伊人狠狠色丁香综合尤物| 欧美影视一区| 免费看亚洲片| 亚洲精品一区二区三区99| 亚洲自拍偷拍麻豆| 久久精品99久久香蕉国产色戒| 国产日韩欧美一二三区| 久久婷婷久久| 亚洲精品国产精品国自产观看浪潮 | 亚洲欧美在线免费观看| 欧美韩日视频| 亚洲午夜精品国产| 久久久久国产精品午夜一区| 一区二区在线观看视频在线观看| 欧美aⅴ一区二区三区视频| 夜夜嗨网站十八久久| 中日韩美女免费视频网站在线观看| 亚洲在线视频网站| 欧美日韩免费区域视频在线观看| 亚洲午夜久久久久久尤物| 久久精品视频免费播放| 亚洲国产一区二区视频| 欧美视频中文在线看 | 亚洲欧美日韩精品久久亚洲区 | 亚洲美女在线国产| 欧美日韩一区二区在线播放| 新狼窝色av性久久久久久| 亚洲国产美女| 午夜视频在线观看一区二区三区| 国内精品久久国产| 久久久午夜电影| 亚洲淫片在线视频| 欧美顶级大胆免费视频| 亚洲自拍电影| 亚洲精品国产精品久久清纯直播 | 国产三级欧美三级| 亚洲欧美一区二区原创| 一本色道婷婷久久欧美| 欧美视频在线观看视频极品 | 亚洲高清自拍| 日韩一级片网址| 欧美va亚洲va日韩∨a综合色| 亚洲免费视频成人| 亚洲日本中文字幕区| 久久国产精品色婷婷| 亚洲精品综合| 韩日欧美一区二区| 国产精品一区二区三区成人| 亚洲第一成人在线| 久久aⅴ国产紧身牛仔裤| 亚洲特级片在线| 在线亚洲一区二区| 一本久道久久综合狠狠爱| 亚洲黄色影片| 影音先锋日韩资源| 黄色日韩精品| 在线看欧美视频| 激情av一区二区| 曰韩精品一区二区| 亚洲国产成人av好男人在线观看| 樱桃国产成人精品视频| 极品少妇一区二区三区精品视频| 国产网站欧美日韩免费精品在线观看| 国产精品午夜国产小视频| 国产精品久久久久久久久果冻传媒| 欧美日韩在线观看视频| 欧美日韩一区二区三区在线| 欧美日韩视频专区在线播放| 欧美视频亚洲视频| 国产精品成人免费| 国产美女一区| 精品9999| 亚洲精品看片| 一区二区三区精品视频在线观看 | 欧美一区二区久久久| 亚洲小说欧美另类社区| 欧美一级大片在线观看| 久久免费视频这里只有精品| 老色鬼久久亚洲一区二区 | 久久三级福利| 免费成人高清在线视频| 亚洲国产综合在线| 日韩手机在线导航| 亚洲午夜精品网| 欧美一区亚洲二区| 欧美+亚洲+精品+三区| 免费欧美在线视频| 欧美调教vk| 黄色成人av网| 亚洲第一狼人社区| 在线视频欧美日韩| 久久久999| 亚洲精品护士| 亚洲一级网站| 免费精品99久久国产综合精品| 欧美电影在线观看完整版| 欧美日韩一区高清| 国产一区二区三区久久悠悠色av| 亚洲国产午夜| 篠田优中文在线播放第一区| 麻豆精品在线视频| 亚洲精品一区二区三区99| 午夜精品久久久99热福利| 男女精品视频| 国产精品免费一区二区三区观看 | 正在播放欧美视频| 久久综合九色综合久99| 国产欧美日韩专区发布| 榴莲视频成人在线观看| 欧美日韩系列| 久久精品国产99精品国产亚洲性色| 欧美福利一区|