C 異常處理

2021-04-18 02:38:03 字數 1255 閱讀 1524

程式設計師常常忽視異常處理的重要性,這給他們自己的**造成相當大損害。本文將討論如何在c#中使用異常處理,並介紹在應用**中新增**片段以防止某些錯誤的一些簡單方法,這些錯誤可能導致程式異常終止。

結構化異常處理

.net框架提供一種標準的錯誤報告機制稱為結構化異常處理。這種機制依賴於應用中報告錯誤的異常。

在.net中,異常是一些提供錯誤資訊的類,你可以某種方式編寫**監視異常的發生,然後以一種適當的方法處理異常。

在c#中處理異常時,你需要在**中關注三個部分:可能導致異常的**段(這也通常稱為丟擲異常)。當執行**過程中發生異常時將要執行的**段(這也通常稱為捕獲異常)。

異常處理後要執行的**段(可選的)(這也通常稱為結束塊)。

異常類

在.net框架中的異常類都派生自systemexception 類。這個類的大部分常用成員如下:

message是指明乙個錯誤細節的文字。

source導致異常的物件或應用的名稱。

stacktrace是堆疊中呼叫的方法列表。

targetsite是丟擲異常的方法名稱。

try/catch/finally

c#中使用try/catch/finally塊處理乙個異常。

try語句指明在執行過程中需要監視丟擲異常的**塊。

catch語句指明了在執行了try**塊後應該執行的**塊。這個**塊無論異常是否發生都會執行。實際上,它常用於可能要求的清理**。

捕獲所有異常

.net允許你監視某個特定**段中發生的任何異常;然而,你可以指明具體的異常,列表a

顯示捕獲所有異常。為了演示如何監視異常這個**包含了乙個錯誤。在列表a,通過宣告乙個異常型別的ex變數,可以捕獲try關鍵字後可能發生的任何異常;無論**中出現何種型別的錯誤,catch語句塊都將執行。此外,即使發生乙個錯誤(無論何種型別),finally**塊將會執行。

捕獲特定異常

列表b顯示了如何捕獲乙個特定的異常。為了演示捕獲異常這段**包含乙個錯誤。在列表b,通過宣告乙個dividebyzeroexception型別的變數ex,當**執行時捕獲了乙個特定異常(dividebyzeroexception)。只有這種型別的錯誤發生時才會執行catch關鍵字後的語句。此外,即使發生乙個錯誤(在這種情況下的任何型別錯誤),finally語句塊將會執行。

檢視本文國際**

C 異常處理

結構化異常 structured exception vs c 異常 c exception 大家都知道c 異常是c 語言的乙個特性,使用者可以使用throw的方式來丟擲異常,try catch 來捕獲異常。結構化異常是諸如,zero divided,access violations等異常,這些異...

c 異常處理

一 概述 c 自身有著非常強的糾錯能力,發展到如今,已經建立了比較完善的異常處理機制。c 的異常情況無非兩種,一種是語法錯誤,即程式中出現了錯誤的語句,函式,結構和類,致使編譯程式無法進行。另一種是執行時發生的錯誤,一般與演算法有關。關於語法錯誤,不必多說,寫 時心細一點就可以解決。c 編譯器的報錯...

c 異常處理

異常,通常是指程式困難檢測到的,執行是不正常的情況,例如被0除,陣列越界訪問等等。異常處理的語法通常是 trycatch 關鍵字try以及它後的大括號中的內容我們稱其為try塊。簡單的說,它包含的是可能會出錯的地方 就是我們要檢測的地方 當我們檢測到乙個錯誤資訊的時候,關鍵字throw就把這個錯誤丟...