网站大量收购独家精品文档,联系QQ:2885784924

例外处理与样板.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例外处理与样板.ppt

第十九章 例外處理與樣板 認識例外的基本概念 學習例外發生時的處理 熟悉樣板的操作 例外的基本觀念 (1/2) 在撰寫程式時,常見的不尋常狀況如下: 要開啟的檔案並不存在 除數為零。 在存取陣列時,陣列的註標值超過陣列容許的範圍 原本預期使用者由鍵盤輸入的是整數,但使用者輸入的卻是英文字母 系統資源耗盡或是儲存資料的磁碟空間不足,造成程式無法繼續儲存資料 這些不尋常的狀況稱為例外(exception) 例外的基本觀念 (2/2) 沒有撰寫例外的程式碼時,預設的處理機制可能會有下列幾種方式: 直接結束程式 當機 發出警告訊息,然後正常結束執行 自行跳過發生錯誤的地方,繼續執行程式,但是後面的執行可能沒有意義 告訴使用者例外發生的情況 在沒有例外處理的語言中,是使用if-else或switch等敘述,來捕捉(catch)程式裡所有可能發生的錯誤 例外處理的程序 例外處理是由?try與catch關鍵字所組成的程式區塊 try區塊內可以撰寫要檢查的程式碼 例外發生時,程式的執行便中斷,並由throw關鍵字拋出物件給catch區塊接收 如果在try區塊內加上捕捉例外的程式碼,則可針對不同的例外做妥善的處理,這種處理捕捉錯誤的方式稱為例外處理(exception handling) try-catch區塊的語法 try與catch程式區塊的語法如下 簡單的例外範例 catch區塊的多載 catch() 可以多載,以捕捉所有的例外 捕捉任何型態的例外 下面是可以捕捉任何型態之例外的範例 樣板 「樣板」(template)的作用有點類似函數的多載 C++提供 「函數樣板」(function template) 「類別樣板」(class template) 多載的複習 下面的範例定義一個add() 函數的多載 函數樣板 「函數樣板」是指將具有相同程式碼的函數撰寫成一個樣板,而把其中引數不同型態之處,用「型態變數」來取代 以「函數樣板」製作新函數的過程,稱為「樣板的具體化」(instantiation of template) 下面列出定義「函數樣板」的語法 函數樣板的使用範例 (1/6) 下面是add 的函數樣板 我們也可以把add函數樣板變成如下的寫法 函數樣板的使用範例 (2/6) 如果想計算整數的加法,則可以用下面的語法 當程式執行到addint(3,4) 時,便會把add() 函數視為下面的定義來呼叫它 函數樣板的使用範例 (3/6) 下面是使用函數樣板之完整範例 函數樣板的使用範例 (4/6) 下面的範例省略add函數之後括號 函數樣板的使用範例 (5/6) 函數樣板也允許程式設計者填入多個型態不同的引數 函數樣板的使用範例 (6/6) add函數之後括號也可以省略 類別樣板的定義 (1/2) 類別樣板定義的格式如下 利用類別樣板來建立物件時,可利用如下的語法 類別樣板的定義 (2/2) 下面的程式碼定義CWin的類別樣板 下面的兩行敘述分別建立資料成員 類別樣板之外的函數定義 在類別樣板之外的函數定義格式 依據上面的格式,可把show() 函數撰寫如下 類別樣板的使用範例1 (1/2) prog19_8是類別樣板的使用範例 類別樣板的使用範例1 (2/2) 類別樣板的使用範例2 (1/2) 下面的範例是使用兩個型態變數的例子 類別樣板的使用範例2 (1/2) 類別樣板的使用範例3 (1/2) 下面的範例限定樣板內某個引數必須為某個型態的變數 類別樣板的使用範例3 (1/2) 樣板的特殊化 (1/2) 樣板的特殊化可分為 「類別樣板的特殊化」 「函數樣板的特殊化」 以CWin類別為例,可將它定義成類別樣板 樣板的特殊化 (2/2) 將CWin類別樣板裡的函數特殊化,成為特殊化的類別樣板 樣板的特殊化之範例1 (1/2) prog19_11是類別樣板特殊化的範例 樣板的特殊化之範例1 (2/2) 樣板的特殊化之範例2 (1/2) 類別樣板內成員函數的特殊化的範例 樣板的特殊化之範例2 (2/2) 19.2 樣板 * * 19.1 例外處理 19.1 例外處理 19.1 例外處理 19.1 例外處理 19.1 例外處理 19.1 例外處理 19.1 例外處理 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 想利用add() 函數把兩個倍精度浮點數相加 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 19.2 樣板 1

文档评论(0)

18273502 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档