seh

SEH("Structured Exception Handling"),即結構化異常處理·是(windows)作業系統提供給程式設計者的強有力的處理程式錯誤或異常的武器。

基本介紹

  • 中文名:名稱:SEH系列UPS
  • 外文名:Structured Exception Handling 
  • 別名:結構化異常處理·
  • 型號::SET-UPS-SEH
UPS,結構化異常處理,定義,發生異常時系統的處理順序,

UPS

名稱:SEH系列UPS
seh
型號:SET-UPS-SEH
SEH系列UPS說明
本系列UPS集交流穩壓器、高速後備電源及尖峰浪涌吸收等多功能於一體、體積小、效率高、性能可靠、使用方便,較以往的後備方波UPS功能更強、保護更周全。廣泛適用於各種辦公場所,同時也是家用
電腦的理想伴侶。

結構化異常處理

定義

在VISUAL C++中你或許已經熟悉了_try{} _finally{} 和_try{} _except {} 結構,這些並不是編譯程式本身所固有的,本質上只不過是對windows內在提供的結構化異常處理的包裝,不用這些高級語言編譯器所提供的包裝 ,照樣可以利用系統提供的強大seh處理功能,在後面你將可以看到,用系統本身提供seh結構和規則以及ASM語言,我們將對SEH的機制以及實現有一個徹底的了解.。

發生異常時系統的處理順序

1.系統首先判斷異常是否應傳送給目標程式異常處理例程,如果決定應該傳送,並且目標程式正在被調試,則系統掛起程式並向調試器傳送EXCEPTION_DEBUG_EVENT訊息.呵呵,這不是正好可以用來探測調試器的存在嗎?
2.如果你的程式沒有被調試或者調試器未能處理異常,系統就會繼續查找你是否安裝了執行緒相關的異常處理例程,如果你安裝了執行緒相關的異常處理例程,系統就把異常傳送給你的程式seh處理例程,交由其處理.
3.每個執行緒相關的異常處理例程可以處理或者不處理這個異常,如果他不處理並且安裝了多個執行緒相關的異常處理例程,可交由鏈起來的其他例程處理.
4.如果這些例程均選擇不處理異常,如果程式處於被調試狀態,作業系統仍會再次掛起程式通知debugger.
5.如果程式未處於被調試狀態或者debugger沒有能夠處理,並且你調用SetUnhandledExceptionFilter安裝了最後異常處理例程的話,系統轉向對它的調用。
6.如果你沒有安裝最後異常處理例程或者他沒有處理這個異常,系統會調用默認的系統處理程式,通常顯示一個對話框,你可以選擇關閉或者最後將其附加到調試器上的調試按鈕.如果沒有調試器能被附加於其上或者調試器也處理不了,系統就調用ExitProcess終結程式。
7.不過在終結之前,系統仍然對發生異常的執行緒異常處理句柄來一次展開,這是執行緒異常處理例程最後清理的機會。

相關詞條

熱門詞條

聯絡我們