異常介紹
www.cppcns.com1、system.exception類
message屬性:發生異常的原因和異常的內容
souce屬性:丟擲異常程式集的名稱
stacktrace屬性:發生異常的方法呼叫情況
innerexception屬性:次異常中包含的異常
2、try{}catch{}finally{}
處理異常
a、不帶引數的catch和catch(exception)是有區別的
catch(exception)可以捕獲所有以exception類派生的異常,而不帶引數的catch可以捕獲所有異常,不管異常是不是從excep程式設計客棧tion類派生。
b、與catch配套的catch和finally是可選的,但二者必選其一。乙個try可對應多個catch,但乙個try只能對應乙個finally。
c、不論try中是否發生異常,finally中的語句一定會被執行。
異常傳播
如果異常發生後,沒有被相應的catch捕獲,那麼異常將沿呼叫堆疊逐漸向上傳遞,直到遇到合適的catch語句或傳遞到最底層的呼叫方法為止。如都沒有找到相應的catch,則異常交付.net公共語言執行時,公共語言執行時彈出乙個對話方塊來顯示異常資訊。
丟擲異常throw
1、throw 變數名;
必須是exception異常或有exception派生的型別
2、throw;
這個throw語句只有乙個throw關鍵字,只能用在catch語句塊中,該語句的意思是丟擲當前catch語句所捕獲的異常。
自定義異常
遵循原則
1、避免使用深的異常類繼承層次結構
2、自定義異常類必須繼承system.exception類或其他幾種基本常見異常類
3、自定義異常類名稱要以exception結尾
4、自定義異常類應該可以序列化
5、自定義異常類應該至少實現與exception類相同的以下四個建構函式
複製** **如下:
public myeayjqstjbxception(){}
public myexception(string message){}
public myexception(string message,exception inner){}
protected myexception(system.runtime.serialization.serializationinfoinfo,system.runtime.serialization.streamingcontext context){}
6、自動插入自定義異常類框架
在編輯器中輸入exception並按鍵,即可得到自定義異常類框架。
本文標題: c#異常處理詳解
本文位址: /ruanjian/csharp/100422.html
C 異常處理詳解
捕獲異常 捕獲異常的語法為 trycatch 異常型別 try 和 catch 都是c 中的關鍵字,後跟語句塊,不能省略 try 中包含可能會丟擲異常的語句,一旦有異常丟擲就會 獲。從 try 的意思可以看出,它只是 嘗試 捕獲異常,如果沒有異常丟擲,那就什麼也不捕獲。catch 用來處理 try ...
異常處理詳解(C )
什麼是異常處理?異常是指程式在執行過程中出現的以外情況。異常通常會使程式的正常流程被打斷。例如,算數運算中被除數為0 陣列下標越界 開啟檔案是檔案不存在等等。一般情況下,程式中需要對異常進行處理,通過對異常情況的處理,可以發現產生異常的原因,並進行必要的異常處理,從而值程式的執行流程繼續走下去。為什...
C 之異常處理詳解
程式中的錯誤分為編譯時的錯誤和執行時的錯誤。編譯時的錯誤主要是語法錯誤,比如 句尾沒有加分號,括號不匹配,關鍵字錯誤等,這類錯誤比較容易修改,因為編譯系統會指出錯誤在第幾行,什麼錯誤。而執行時的錯誤則不容易修改,因為其中的錯誤是不可預料的,或者可以預料但無法避免的,比如記憶體空間不夠,或者在呼叫函式...