C 異常處理機制初步

2021-03-31 08:56:29 字數 3125 閱讀 2620

c#異常處理機制初步

今天學習了

c#的異常處理機制,現將所學總結如下: 一、

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                                         數學計算錯誤:由於數**算導致的異常,覆蓋面廣。

arraytypemi**atchexception                       陣列型別不匹配

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 的異常處理所用到關鍵字 try 用於檢查發生的異常,並幫助傳送任何可能的異常。catch 以控制權更大的方式處理錯誤,可以有多個catch子句。finally 無論是否引發了異常,finally的 塊都將被執行。throw 用於引發異常,可引發預定義異常和自定義異常。二 c 異常處理的格式 ...

c 異常處理機制

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

c 異常處理機制

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