C 異常處理機制初步

2021-06-15 22:03:58 字數 2240 閱讀 6496

一、c#的異常處理所用到關鍵字

try 用於檢查發生的異常,並幫助傳送任何可能的異常。

catch 以控制權更大的方式處理錯誤,可以有多個catch子句。

finally 無論是否引發了異常,finally的**塊都將被執行。

throw 用於引發異常,可引發預定義異常和自定義異常。

二、c#異常處理的格式

try

catch(exception e)

finally

三、異常處理實戰

乙個除數和零的簡單例子:

public class divisoriszero

",dividevalue);//(3)這一行將不會被執行。

} catch

",e);

} finally }

} 注:(1)行被執行則會丟擲乙個異常,如果沒有catch語句,程式會異常終止,使用不帶引數的catch子句,則可以捕獲任意型別的異常。

如果將(1)行注釋掉,啟用(2)行,這意味該程式執行時不會出現異常,從輸出可知,finally**塊仍將被執行。

可以給try語句提供多個catch語句,以捕獲特定的異常,如上例中:0作為除數則會引發dividebyzeroexception型別的異常,上例中的catch語句可以作如下修改:

catch(dividebyzeroexception e)

",e);

} catch(exception e)

",e);

} 為什麼還要加上乙個catch(exception e)子句呢?原因很簡單,catch(dividebyzeroexception e)子句只能捕獲特定的異常,try內的程式**可能還會產生其它的異常,這些異常只能由catch(exception e)來捕獲了。

下表給出了一些常見的異常:

system命名空間中常用的異常類

異常類名稱 簡單描述

memberacces***ception 訪問錯誤:型別成員不能被訪問

argumentexception 引數錯誤:方法的引數無效

argumentnullexception 引數為空:給方法傳遞乙個不可接受的空引數

arithmeticexception 數學計算錯誤:由於數**算導致的異常,覆蓋面廣。

arraytypemismatchexception 陣列型別不匹配

dividebyzeroexception 被零除

formatexception 引數的格式不正確

indexoutofrangeexception 索引超出範圍,小於0或比最後乙個元素的索引還大

invalidcastexception 非法強制轉換,在顯式轉換失敗時引發

multicastnotsupportedexception 不支援的組播:組合兩個非空委派失敗時引發

notsupportedexception 呼叫的方法在類中沒有實現

nullreferenceexception 引用空引用物件時引發

outofmemoryexception 無法為新語句分配記憶體時引發,記憶體不足

overflowexception 溢位

stackoverflowexception 棧溢位

typeinitializationexception 錯誤的初始化型別:靜態建構函式有問題時引發

notfinitenumberexception 無限大的值:數字不合法

四、定義自己的異常類

除了預定義的異常外,我們還可以建立自己的異常,過程比較簡單:

㈠宣告乙個異常,格式如下:

class exceptionname:exception{}

㈡引發自己的異常:

throw(exceptionname);

看乙個例子:

class iamsecondgrade:system.exception{}//宣告異常

class secondgrade

public static void main()

",mul_value);

mul_value=mul(101,4);

system.console.writeline("出現異常,這行是不會被執行的。");

} catch(iamsecondgrade)//捕獲自定義的異常

catch(system.exception e)

",e);

} }

C 異常處理機制初步

c 異常處理機制初步 今天學習了 c 的異常處理機制,現將所學總結如下 一 c 的異常處理所用到關鍵字 try 用於檢查發生的異常,並幫助傳送任何可能的異常。catch 以控制權更大的方式處理錯誤,可以有多個 catch 子句。finally 無論是否引發了異常,finally 的 塊都將被執行。t...

c 異常處理機制

c 異常處理機制 c 異常處理機制是乙個用來有效地處理執行錯誤的非常強大且靈活的工具,它提供了更多的彈性 安全性和穩固性,克服了傳統方法所帶來的問題.異常的丟擲和處理主要使用了以下三個關鍵字 try throw catch 丟擲異常即檢測是否產生異常,在c 中,其採用throw語句來實現,如果檢測到...

c 異常處理機制

c 異常處理機制是乙個用來有效地處理執行錯誤的非常強大且靈活的工具,它提供了更多的彈性 安全性和穩固性,克服了傳統方法所帶來的問題.異常的丟擲和處理主要使用了以下三個關鍵字 try throw catch 丟擲異常即檢測是否產生異常,在c 中,其採用throw語句來實現,如果檢測到產生異常,則丟擲異...