usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.io;
//自己的總結:
//(1)當成員丟擲異常時對效能的影響是指數級
//(2)不要因異常可能對效能造成負面影響而使用錯誤碼
//(3)提高效能可以使用tester-doer模式或try-parse模式
//(4)異常是向上傳遞,層層上拋,我們可以在每個子方面中thow具體異常並附加更多資訊,在主方面中捕獲這些異常.
using system.runtime.serialization;namespace
exceptiondemo
//////
tester-doer模式
///條件:"test"操作遠比"do"操作快(避免多執行緒)
/// private
static
void
testerdoerdemo()
}//////
try-parse模式
/// private
static
void
trypaserdemo()
else
}private
static
void
trycatchfianlly()
catch
}private
static
int divede(int a,int
b)
catch (dividebyzeroexception ex)//
捕捉具體異常類
catch
(exception ex)
return
c; }
//////
throw demo
///可以使用 throw 語句顯式引發異常。還可以使用 throw 語句再次引發捕獲的異常。較好的編碼做法是,向再次引發的異常新增資訊以在除錯時提供更多資訊。
///下面的**示例使用 try/catch 塊捕獲可能的 filenotfoundexception。
///try 塊後面是 catch 塊,catch 塊捕獲 filenotfoundexception,如果找不到資料檔案,則向控制台寫入訊息。
///下一條語句是 throw 語句,該語句引發新的 filenotfoundexception 並向該異常新增文字資訊。
/// private
static
void
thowexceptiondemo()
catch
(exception ex)
}private
static
void fileoperation(string
filepath)
catch
(filenotfoundexception e)
", e);
throw
newfilenotfoundexception(filepath, e);
}catch
(exception ex)
finally
}//////
finallydemo
///異常發生時,執行將終止,並且控制交給最近的異常處理程式。這通常意味著不執行希望總是呼叫的**行。有些資源清理(如關閉檔案)必須總是執行,即使有異常發生。為實現這一點,可以使用 finally 塊。finally 塊總是執行,不論是否有異常發生。
///下面的**示例使用 try/catch 塊捕獲 argumentoutofrangeexception。main 方法建立兩個陣列並試圖將乙個陣列複製到另乙個陣列。該操作生成 argumentoutofrangeexception,同時錯誤被寫入控制台。finally 塊執行,不論複製操作的結果如何。
/// private
static
void
finallydemo()
;int array2 = ;
try
catch
(argumentoutofrangeexception e)
", e);
}finally
}//////
自定義異常demo
/// private
static
void
mydefineexceptiondemo()}}
//////
自定義異常類
/// public
class
mydefineexception : exception,iserializable
public mydefineexception(string
message)
public mydefineexception(string
message, exception inner)
protected
mydefineexception(serializationinfo info, streamingcontext context)
}}
異常 C 中的異常
本文參照於狄泰軟體學院 c 深度剖析課程 之前我們分析了c語言中異常處理的方式,基本沒有好的解決方案。那麼c 中會如何優化c語言對異常的處理的缺陷呢?c 內建了異常處理的語法元素try catch try語句處理正常 邏輯 catch語句處理異常情況 try語句中的異常由對應的catch語句處理 t...
C 中的異常
一,異常的推演 1.函式與異常 平時我們在函式中出現異常情況時通常通過return終止函式並返回乙個值,然後在函式上層來獲取值並判斷是什麼異常情況。因為函式是棧結構的,所以return的時候是通過棧結構逐步往上的,不能夠跨函式直接丟擲,不方便。所以c 推出了異常機制,通過異常機制我們可以輕鬆的捕獲要...
c 中的異常
乙個簡單的例子 include using namespace std double division int a,int b return a b int main catch const char msg return 0 上面的const char 異常型別也可以是任何型別,比如double,...