热门问题
时间线
聊天
视角

例外處理

局势计算机编程 来自维基百科,自由的百科全书

Remove ads

計算電腦編程領域中,例外處理(英語:exception handling,也意譯為異常處理),指的是在程式執行英語Execution (computing)期間,對出現的例外或異常情況的回應處理機制。一般而言,例外打斷正常的執行流程並執行預先登記的「例外處理器」,具體處理措施依賴於它是硬體還是軟體例外,還有軟體例外是如何實現的。

例外是由電腦系統的不同層級來定義的,典型的層級有CPU定義的中斷作業系統(OS)定義的訊號程式語言定義的例外。每個層級都要求不同例外處理方式,但是它們可以是關聯的,比如說CPU中斷可能被轉變成OS訊號。一些例外(特別是硬體例外)可以被優雅地處理,使得程式執行能在它被中斷的地方恢復。

硬體的例外處理

硬體的例外處理機制由CPU完成。這種機制支援錯誤檢測,在發生錯誤後會將程式流跳轉到專門的錯誤處理常式中。發生例外前的狀態儲存在棧上。[1]

作業系統的例外處理

針對程式中可能發生的例外,作業系統可能通過IPC來提供對應的處理設施。行程執行過程中發生的中斷通常由操作提供的「中斷服務子程式」處理,作業系統可以藉此向該行程傳送訊號。行程可以通過註冊訊號處理器的方式自行處理訊號,也可以讓作業系統執行預設行為(比如終止該程式)。

從行程的視角,硬體中斷相當於可恢復例外,雖然中斷一般與程式流本身無關。

程式語言的例外處理

程式語言領域,通常例外(英語:exception)這一術語所描述的是一種資料結構,該資料結構可以儲存例外的相關訊息。例外處理的常見的一種機制是移交控制權。引發(raise)例外,也叫作丟擲(throw)例外,通過該方式達到移交控制權的效果。例外丟擲後,控制權會被移交至某處的接住(catch),並執行處理。

參照

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads