.Net Framework異常具體概念深入剖析
任何一個程序開發都不能保證是萬無一失,不會出現錯誤的。那么這就需要再程序中添加異常處理的功能。我們在這里就為大家詳細介紹一下有關.Net Framework異常的具體操作方法,希望對大家有所幫助。#t#
異常對象都包含一個描述字符串和一個堆棧蹤跡。微軟規定所有和CLS兼容的編程語言都必須能夠拋出并捕獲那些繼承自System.Exception的異常類型。
- void SomeMethod() {
- try {
- //需要.Net Framework異?;謴秃唾Y源清理的操作代碼;
或可能會拋出異常的代碼 - //單獨一個try塊是沒有任何意義的
- }
- catch(異常篩選器exception filter) {
- //異?;謴痛a ,出現異常時需要執行的響應代碼
- //異常篩選器本身是一個類型;代碼執行時是
自上而下搜索catch塊的,應將更具體的異常
放在上面,否則會產生個錯誤 - }
- finally {
- //包含確保要執行的代碼,一般是資源清理代碼
- //不管線程是否拋出異常,該代碼塊中的代碼都能確保被執行
- //一個try塊并非必須要有一個finally塊相
關聯,因為有時候try塊中的代碼并不需要任何
清理工作;但一個try塊最多只能有一個相關聯的finally塊 - }
- }
.Net Framework異常不是錯誤,它是對程序接口隱含假設的一種違反。這里的程序接口是指屬性的數據類型,方法的參數,返回值等。通過拋出異常,一個方法可以通知它的調用程序它所做的假設被違反了。
如何正確使用.Net Framework異常?
a. 避免過多的finally塊;C#提供了lock和using語句,是編譯器自動產生try塊和finally塊,其中finally塊就是清理代碼,它們編譯產生的結果是一樣的。
b. 避免直接用System.Exception異常篩選器捕獲所有異常,因為系統隨時可能拋出StackOverflowException或OutOfMemoryException
c. 當異常無法修復時,回滾部分完成的操作。