C#學習第8章異常處理.ppt_第1頁
C#學習第8章異常處理.ppt_第2頁
C#學習第8章異常處理.ppt_第3頁
C#學習第8章異常處理.ppt_第4頁
C#學習第8章異常處理.ppt_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章 異常處理,我們編寫程序的時候,總是希望程序按照自己的意愿工作,但是總可能發(fā)生意外,有些意外在編寫代碼的時候是檢查不到的,更有些意外是因為軟件所處的環(huán)境改變所致。為了提前預防意外的發(fā)生,C#提出了異常處理機制,非常聰明地處理這些事情。本章主要涉及到的知識點有: 了解什么是異常,以及C#的異常處理機制。 C#常用的異常。 用try、catch和finally關鍵字捕獲異常。 用throw關鍵字拋出異常。 自定義異常。,8.1 為什么要異常處理,在開發(fā)過程中,我們可以通過程序調試和代碼走查來修改程序代碼錯誤。但是程序在運行過程中,往往會遇到一些運行時錯誤。異常是面向對象編程中用于處理程序錯誤的有效機制。C#語言本身提供了很好的異常處理機制,充分體現(xiàn)了語言的健壯性。,8.1.1 程序的異常,【本節(jié)示例參考:源代碼chapter88.1.1ExceptionExample】 我們公司在7樓,下班以后,和同事一起出門,當時電梯還沒有到,同事要求走樓梯,我堅持坐電梯,因為一般情況坐電梯都比走樓梯快,但是等坐上電梯以后,電梯出了故障,等我下樓以后,同事早已經在下面等著我了。這是生活中的一個異常。那么,程序中的異常又是怎樣的呢?首先,來看一個例子。程序員輸入如下的代碼邏輯,希望得到輸出的結果。 int val = 10; /定義變量i for (int i = 5; i 0; i-) val = i/val; /改變變量值 Console.WriteLine(“val =0“, val); ,8.1.2 處理C#中的異常,【本節(jié)示例參考:源代碼chapter88.1.2ExceptionExample】 和同事下樓以后,同事幸災樂禍的地說我坐電梯沒他走樓梯快。我說是啊,如果我知道電梯要壞的話,就跟他走樓梯了??墒俏抑案緹o法知道電梯會壞。生活中經常發(fā)生這種不可預測的意外。程序中也一樣,總可能發(fā)生異常。異常是在程序運行過程中發(fā)生的,如圖8.2演示了異常處理流程。,8.2 捕獲異常,C#語言提供了異常處理的語法支持,C#通過關鍵字try、catch和finally來執(zhí)行異常處理。同時可以通過關鍵字throw拋出異常,讓程序上一級或者系統(tǒng)本身來處理拋出的異常。理解了異常處理,只是應用異常的第一步,下面的工作就是捕獲異常,并對異常進行處理。同時,讀者還可以根據(jù)自己的需要自定義異常。,8.2.1 trycatchfinally語句,【本節(jié)示例參考:源代碼chapter88.2.1ExceptionExample】 繼續(xù)以坐電梯和走樓梯的故事為例,走樓梯是一種非常保險的方式,不需要考慮有意外的發(fā)生;坐電梯就有可能遇到電梯發(fā)生故障,但是坐電梯要快一些。所以這樣考慮這件事情:我試圖坐電梯,如果遇到故障,就按警報!按照編程的邏輯重新組織一下語言,如下所示: 試圖 坐電梯 遇到(故障) 按警報 最終 到了樓下 ,8.2.2 拋出異常,【本節(jié)示例參考:源代碼chapter88.2.2ExceptionExample】 前面演示了如何使用trycatchfinally語句捕獲程序異常,這種異常通常只在代碼出現(xiàn)錯誤的時候發(fā)生。其實,還可以在代碼中顯示的拋出異常,方法是使用關鍵字throw。下面我們編寫一個程序,代碼如下:,8.2.3 自定義異常,【本節(jié)示例參考:源代碼chapter88.2.3ExceptionExample】 合理地編寫自定義異常類有助于更精確的捕獲異常,而不是籠統(tǒng)地認為所有的異常都歸結于.NET Framework中定義的Exception類或其已經定義好了的類型。,8.3 小結,本章講解了異常處理,大家通過對本章的學習,能夠充分地了解.NET Framework的異常處理機制,使用.NET Framework自帶的異常類處理程序,也可以自定義異常類處理程序。通過本章,讀者學習了以下內容: (1)異常是程序運行時錯誤,發(fā)生異常時,程序將意外終止,并將控制權返回給操作系統(tǒng)。 (2)C#常用的異常處理類派生自System.Exception基類。 (3)C#用try、catch和finally關鍵字捕獲異常。用throw關鍵字拋出異常。,本章習題,一、選擇題 1下列關于trycatchfinaly語句的說明中,不正確的是( ) Acatch塊可以有多個 Bfinaly塊是可選的 Ccatch塊也是可選的 D可以只有try塊 2為了能夠在程序中捕獲所有的異常,在catch語句的括號中使用的類名為( ) AException BDivideByZeroException CFormatException D以上三個均可 3關于異常,下列

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論