(2)new關鍵字是用于為一個委托建立一個執行個體。委托的構造函數不能被重載。這裡包含三種不同的情況,以下代碼是對類進行初始化的三種情況:
a) 對于一個執行個體方法,采用object.method格式
b) 對于一個靜态方法,采取class.method格式
c) 對于方法和委托包含在同一類中,則既不需要對象名,也不需要類名。
什麼是異常?異常是應用程式發生異常事件或錯誤情況,分為系統異常和應用程式異常。
系統異常是公共語言運作時(clr)引發的,包括空引用、記憶體洩漏、被零除和堆棧溢出異常。應用程式異常,被看做是自定義異常,是由應用程式引發的。
(1)異常舉例
常見的一個異常就是被零除,也就是零被作為除數。如下面代碼,發生了被零除異常,終止了程式。
把可能産生異常的代碼放在一個try塊中,因為try塊中的代碼是受異常保護的,這樣就可以捕獲異常。catch塊處理異常,顯示堆棧跟蹤。
這樣運作結果就是會提醒程式具體哪一行出錯:
(2)結構化的異常處理
也就是一個專門負責異常處理的工具名稱。它通過評估堆棧決定何時代碼受保護和何處捕捉和處理一個異常。
a)try語句:螢幕,監視保護代碼中的異常。
下面是一個在超過數組邊界時發生的邊界溢出處理錯誤。
結果是在未保護的methoda方法中的一個異常,main調用methoda,main的範圍包括methoda,是以,main中的try塊擴充保護到methoda。異常在main中被捕捉。
b)catch語句:篩選和處理異常。其中篩選器可以幫助我們捕捉各類異常。
catch篩選器是可選的,預設的是catch all。在(1)中,異常舉例的dividebyzeroexception就是專門捕捉被零除異常的。下面代碼屬于一個預設的:
c)finally語句:終結處理器。起到一個可以關閉檔案、釋放一個資料庫或其他的管理資源的用途。
下面是一個典型的終結處理器:
d)語句使用規範
使用必須與一條catch或finally語句成對使用。可以有零到多條catch語句和一條try語句結合使用,沒有或隻有finally一條語句。如果catch和finally語句同時出現,則catch語句應在finally語句之前。
四.總結
這一編的學習把委托又重新認識了一遍,以前總覺得很難了解,現在覺得其實從生活中去看,委托無處不在。如何去定義,如何去調用,在不同的情況下如何正确去執行個體化,這都是在這一次中學習中的收獲。對于try-catch-finally語句,也是在很早就編寫過,看似比較簡單,實際上也是内容豐富,現在的我們還都是在用調試階段就可以應付,但以後就不一樣了,異常的情況可能會經常碰到,是以這也是一個很基礎的學習。
在期末複習階段,學了些c#的東西,後天就要開學了,機房重構,就要真正開始了。come on!