• <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>

            LoveBeyond

            What is a First Chance Exception(什么是第一輪異常)

            當(dāng)你正在調(diào)試程序的時(shí)候,你是否曾經(jīng)看到過消息窗口輸出關(guān)于“First Chance Exception”(第一輪異常)的信息?也許有人會(huì)問,“什么是第一輪異常?”、“出現(xiàn)第一輪異常的提示意味著代碼有問題嗎?”
            什么是第一輪異常?
            (1)當(dāng)一個(gè)程序被調(diào)試的時(shí)候,如果有異常發(fā)生調(diào)試器會(huì)得到通知,這個(gè)時(shí)候,被調(diào)試的應(yīng)用程序?qū)?huì)被掛起并且調(diào)試器決定如何來(lái)處理這個(gè)異常。當(dāng)一個(gè)異常第一次經(jīng)過這種機(jī)制就是所謂的“第一輪異常”。根據(jù)調(diào)試器的設(shè)置,調(diào)試器可能會(huì)忽略這個(gè)異常并讓程序繼續(xù)執(zhí)行,或者保持被調(diào)試程序的掛起狀態(tài)并進(jìn)入調(diào)試模式。
            如果應(yīng)用程序無(wú)法處理這個(gè)異常,調(diào)試器會(huì)再次得到通知,這個(gè)就是所謂的“Second Chance Exception”(第二輪異常)了。同樣調(diào)試器會(huì)再次掛起被調(diào)試程序并決定如何來(lái)處理這個(gè)異常。通常情況下,當(dāng)?shù)诙啴惓0l(fā)生的時(shí)候,調(diào)試器都被配置為進(jìn)入調(diào)試模式,來(lái)允許用戶進(jìn)行調(diào)試。
            出現(xiàn)第一輪異常的提示意味著代碼有問題嗎?
            第一輪異常的提示消息通常并不意味著代碼有問題,對(duì)于那些能完善處理異常的程序或者組件來(lái)說,出現(xiàn)第一輪異常的提示信息意味著出現(xiàn)了一個(gè)異常并且得到了妥善的處理。
            對(duì)于沒有異常處理代碼的程序來(lái)說,調(diào)試器會(huì)收到第二輪異常通知并且會(huì)提示沒有處理的異常信息。
            (以上信息整理自《What is a First Chance Exception》)

            異常與調(diào)試器
            Microsoft Visual Studio的調(diào)試器為異常調(diào)試提供了出色的支持。當(dāng)進(jìn)程中的某個(gè)線程拋出異常,操作系統(tǒng)會(huì)馬上通知調(diào)試器(如果調(diào)試器已經(jīng)附著)。這個(gè)通知被稱為“首次機(jī)會(huì)通知”(first-chance notification)。調(diào)試器將響應(yīng)這個(gè)通知,促使線程尋找異常過濾程序。如果所有的異常過濾程序都返回EXCEPTION_CONTINUE_SEARCH,操作系統(tǒng)會(huì)給調(diào)試器一個(gè)“最后機(jī)會(huì)通知”(last-chance notification)。這兩個(gè)通知的存在使得軟件開發(fā)人員能夠更好的控制異常調(diào)試的過程。
            針對(duì)每個(gè)解決方案,我們可以通過Visual Studio調(diào)試器的“調(diào)試”-“異常”菜單打開Exceptions對(duì)話框決定調(diào)試器如何響應(yīng)首次機(jī)會(huì)異常通知。
            Visual Studio Exceptions對(duì)話框
            (以上信息整理自《Windows核心編程》)

            個(gè)人總結(jié):對(duì)于First Chance Exception和Second/Last Chance Exception,這些都只會(huì)出現(xiàn)于調(diào)試器中。前者意味著被調(diào)試程序確實(shí)產(chǎn)生了一個(gè)異常,如果被調(diào)試程序自己處理掉了這個(gè)異常,那么就不會(huì)出現(xiàn)Second/Last Chance Exception的提示,反之如果沒有處理則出現(xiàn)Second/Last Chance Exception的提示;如果是一個(gè)正常執(zhí)行的程序,Second/Last Chance Exception意味著這個(gè)程序的終止運(yùn)行。

            本文出自程序人生 >> What is a First Chance Exception(什么是第一輪異常)

            推薦閱讀:

            來(lái)用低級(jí)鍵盤鉤子實(shí)現(xiàn)鍵盤改鍵
            QQScLauncher逆向分析

            posted on 2011-10-24 21:04 LoveBeyond 閱讀(1837) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 雜亂無(wú)章

            <2011年10月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(1)

            文章分類

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            友情鏈接:C++博客 LoveBeyond 代碼瘋子 程序人生 C++技術(shù)博客
            免费精品久久天干天干| 久久久久se色偷偷亚洲精品av| 久久久久久国产a免费观看黄色大片 | 亚洲国产精品无码久久九九| 狠狠色丁香久久婷婷综合蜜芽五月| 中文字幕无码久久精品青草| 成人妇女免费播放久久久| 性做久久久久久久久| 曰曰摸天天摸人人看久久久| 久久精品国产免费观看| 久久se精品一区精品二区| 久久久久亚洲Av无码专| 久久久久久久91精品免费观看| 91精品国产色综合久久| 精品人妻久久久久久888| 久久久久综合国产欧美一区二区| 中文字幕一区二区三区久久网站| 欧美日韩久久中文字幕| 丁香久久婷婷国产午夜视频| 26uuu久久五月天| 蜜臀久久99精品久久久久久小说| 久久午夜无码鲁丝片| 亚洲精品成人网久久久久久| 国产日韩久久久精品影院首页| 波多野结衣AV无码久久一区| 日韩久久久久久中文人妻| 日韩电影久久久被窝网| 久久国产成人午夜aⅴ影院| 久久人人爽人人爽人人片AV麻豆| 97精品久久天干天天天按摩 | 亚洲国产精品婷婷久久| 久久精品无码专区免费东京热 | 怡红院日本一道日本久久 | 免费观看久久精彩视频| 久久免费高清视频| A狠狠久久蜜臀婷色中文网| 色婷婷综合久久久久中文一区二区| 综合网日日天干夜夜久久| 久久久久久伊人高潮影院| 久久AV高潮AV无码AV| 久久久久国产精品熟女影院|