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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章 異常處理,我們編寫程序的時(shí)候,總是希望程序按照自己的意愿工作,但是總可能發(fā)生意外,有些意外在編寫代碼的時(shí)候是檢查不到的,更有些意外是因?yàn)檐浖幍沫h(huán)境改變所致。為了提前預(yù)防意外的發(fā)生,C#提出了異常處理機(jī)制,非常聰明地處理這些事情。本章主要涉及到的知識(shí)點(diǎn)有: 了解什么是異常,以及C#的異常處理機(jī)制。 C#常用的異常。 用try、catch和finally關(guān)鍵字捕獲異常。 用throw關(guān)鍵字拋出異常。 自定義異常。,8.1 為什么要異常處理,在開(kāi)發(fā)過(guò)程中,我們可以通過(guò)程序調(diào)試和代碼走查來(lái)修改程序代碼錯(cuò)誤。但是程序在運(yùn)行過(guò)程中,往往會(huì)遇到一些運(yùn)行時(shí)錯(cuò)誤。異常是面向?qū)ο缶幊讨杏糜谔幚沓绦蝈e(cuò)誤的有效機(jī)制。C#語(yǔ)言本身提供了很好的異常處理機(jī)制,充分體現(xiàn)了語(yǔ)言的健壯性。,8.1.1 程序的異常,【本節(jié)示例參考:源代碼chapter88.1.1ExceptionExample】 我們公司在7樓,下班以后,和同事一起出門,當(dāng)時(shí)電梯還沒(méi)有到,同事要求走樓梯,我堅(jiān)持坐電梯,因?yàn)橐话闱闆r坐電梯都比走樓梯快,但是等坐上電梯以后,電梯出了故障,等我下樓以后,同事早已經(jīng)在下面等著我了。這是生活中的一個(gè)異常。那么,程序中的異常又是怎樣的呢?首先,來(lái)看一個(gè)例子。程序員輸入如下的代碼邏輯,希望得到輸出的結(jié)果。 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】 和同事下樓以后,同事幸災(zāi)樂(lè)禍的地說(shuō)我坐電梯沒(méi)他走樓梯快。我說(shuō)是啊,如果我知道電梯要壞的話,就跟他走樓梯了。可是我之前根本無(wú)法知道電梯會(huì)壞。生活中經(jīng)常發(fā)生這種不可預(yù)測(cè)的意外。程序中也一樣,總可能發(fā)生異常。異常是在程序運(yùn)行過(guò)程中發(fā)生的,如圖8.2演示了異常處理流程。,8.2 捕獲異常,C#語(yǔ)言提供了異常處理的語(yǔ)法支持,C#通過(guò)關(guān)鍵字try、catch和finally來(lái)執(zhí)行異常處理。同時(shí)可以通過(guò)關(guān)鍵字throw拋出異常,讓程序上一級(jí)或者系統(tǒng)本身來(lái)處理拋出的異常。理解了異常處理,只是應(yīng)用異常的第一步,下面的工作就是捕獲異常,并對(duì)異常進(jìn)行處理。同時(shí),讀者還可以根據(jù)自己的需要自定義異常。,8.2.1 trycatchfinally語(yǔ)句,【本節(jié)示例參考:源代碼chapter88.2.1ExceptionExample】 繼續(xù)以坐電梯和走樓梯的故事為例,走樓梯是一種非常保險(xiǎn)的方式,不需要考慮有意外的發(fā)生;坐電梯就有可能遇到電梯發(fā)生故障,但是坐電梯要快一些。所以這樣考慮這件事情:我試圖坐電梯,如果遇到故障,就按警報(bào)!按照編程的邏輯重新組織一下語(yǔ)言,如下所示: 試圖 坐電梯 遇到(故障) 按警報(bào) 最終 到了樓下 ,8.2.2 拋出異常,【本節(jié)示例參考:源代碼chapter88.2.2ExceptionExample】 前面演示了如何使用trycatchfinally語(yǔ)句捕獲程序異常,這種異常通常只在代碼出現(xiàn)錯(cuò)誤的時(shí)候發(fā)生。其實(shí),還可以在代碼中顯示的拋出異常,方法是使用關(guān)鍵字throw。下面我們編寫一個(gè)程序,代碼如下:,8.2.3 自定義異常,【本節(jié)示例參考:源代碼chapter88.2.3ExceptionExample】 合理地編寫自定義異常類有助于更精確的捕獲異常,而不是籠統(tǒng)地認(rèn)為所有的異常都?xì)w結(jié)于.NET Framework中定義的Exception類或其已經(jīng)定義好了的類型。,8.3 小結(jié),本章講解了異常處理,大家通過(guò)對(duì)本章的學(xué)習(xí),能夠充分地了解.NET Framework的異常處理機(jī)制,使用.NET Framework自帶的異常類處理程序,也可以自定義異常類處理程序。通過(guò)本章,讀者學(xué)習(xí)了以下內(nèi)容: (1)異常是程序運(yùn)行時(shí)錯(cuò)誤,發(fā)生異常時(shí),程序?qū)⒁馔饨K止,并將控制權(quán)返回給操作系統(tǒng)。 (2)C#常用的異常處理類派生自System.Exception基類。 (3)C#用try、catch和finally關(guān)鍵字捕獲異常。用throw關(guān)鍵字拋出異常。,本章習(xí)題,一、選擇題 1下列關(guān)于trycatchfinaly語(yǔ)句的說(shuō)明中,不正確的是( ) Acatch塊可以有多個(gè) Bfinaly塊是可選的 Ccatch塊也是可選的 D可以只有try塊 2為了能夠在程序中捕獲所有的異常,在catch語(yǔ)句的括號(hào)中使用的類名為( ) AException BDivideByZeroException CFormatException D以上三個(gè)均可 3關(guān)于異常,下列

溫馨提示

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

評(píng)論

0/150

提交評(píng)論