4 继承Thread类别建立执行绪.DOC

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

Java例外處理與多執行緒 1. 程式偵錯 2 2. 例外處理 3 (1). 範例練習:exp8_2_1.java 5 (2). 範例練習:exp8_2_2.java 6 (3). 範例練習:exp8_2_3.java 7 3. 多執行緒 8 4. 繼承Thread類別建立執行緒 10 (1). 範例練習:exp8_4_1.java 11 5. 實作Runnable介面建立執行緒 13 (1). 範例練習:exp8_5_1.java 14 6. 實例:exp8_6_1.java 16 7. 實例:exp8_6_2.java 19 8. 實例:exp8_6_3.java 24 程式偵錯   所謂「例外」,就是當程式碼編輯完,在編譯期間沒有出現錯誤訊息,但在程式執行時卻發生錯誤,這種錯誤又稱為執行時期錯誤。   所謂「多執行緒」,就是多工處理不同敘述區塊的程式碼,即可讓不同區塊的程式碼同時執行。   在編譯程式或執行程式時常會遇到各種不同錯誤,以致無法正常完成工作。研發軟體時最容易遇到三種錯誤(Bug):語法錯誤、執行時期錯誤(Runtime error)、邏輯錯誤。 1. 語法錯誤  語法錯誤是初學者最容易犯的錯誤。在編譯過程中,系統常能立即指出  此種錯誤的所在,並要求程式設計者修正後才能正式執行。這樣錯誤最  容易解決,只要熟悉語法多多練習就可以減少錯誤產生。 2. 執行時期錯誤  程式在執行時,因為輸入資料不符合、在計算過程分母為0、磁碟中無此  檔案存在、陣列的索引值超出陣列宣告範圍…等,使得程式中斷執行。這  種錯誤的問題在編譯時,並不會發生,被Java稱為「例外」,而Java也提  供了例外處理的方式來解決問題。 3. 邏輯錯誤  邏輯錯誤是最難找出的,尤其在大型應用程式最為明顯。程式在執行過程  並沒有出現錯誤,也會有執行結果,甚至有時候結果是正確的。除非你仔  細觀察,多人多次測試,否則不見得會發現。因此誤信其執行結果,往往  造成很大損失。有些系統提供偵錯(Debug)工具,用來協助找出錯誤之  處。若沒有偵錯工具,就只能自己設定偵測點,輸出目前主要變數內容是  否如預測結果,以推測可能錯誤之處,再仔細研讀程式,尋找邏輯上錯誤  之處,加以修正。 例外處理   當程式在執行時期發生錯誤或不正常狀況,稱之為例外(Exception)。進行例外處理是不希望程式中斷。而是希望程式能捕捉錯誤並繼續執行,若錯誤是使用者輸入不正確資料所造成的,可以要求使用者輸入正確資料再繼續執行,或者不處理使用者輸入資料繼續做其他工作。   Java使用 try … catch … finally 敘述來解決例外處理,它的方式是將被監視的敘述區段寫在try大括號內,當程式執行到try內的敘述有發生錯誤時,會逐一檢查捕捉(catch)該錯誤,以便執行該catch內敘述。最後不管是否有符合catch,都會執行最後的finally敘述區段。例外處理的格式如下: 1. 行01:使用try敘述,至少要一個catch(捕捉)配合。 2. 行04、07:多個catch(捕捉)敘述區段,由上至下catch逐一檢查,遇到符合條件,則執行該對應敘述區段,以下catch就不再處理。其中 exception1、exception2 … 等為例外類別。常用到的例外類別如下表: 3. 行10~12:finally在最後一個catch之後,不論是否執行catch(捕捉)的敘述區段,都會執行finally內的敘述區段。finally也可以省略不用。 範例練習:exp8_2_1.java 1. 行05:因除數n2 = 0,所以第06行不會被執行,而直接跳到第08行執行catch,捕捉例外。 2. 行08:捕捉到例外,其例外類別Java.lang.ArithmeticException(算術運算錯誤)由第10行顯示出來,其錯誤的情形是 「/ by zero」(除數為0)。 3. 行12~14:無論有否執行catch,皆會執行finally內的敘述區塊。 範例練習:exp8_2_2.java 1. 行05:除數「n2 = 2」不為0,因此第06行會被執行。 2. 行06:被執行後,直接跳至第12~14行執行。 3. 行12~14:無論有否執行catch,皆會執行finally內的敘述區塊。 範例練習:exp8_2_3.java 1. 行03:宣告陣列arr,其索引值範圍為 0~9 ,共10個元素。 2. 行07:arr[10],其索引10,已超出範圍,因此第08行不會被執行。並跳至第10行及第13行接受偵測能捕捉的例外類別。 3. 行13~15:本程式的例外類別,為 ArrayIndexOutOfBoundsException , 因此本敘述

文档评论(0)

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

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

1亿VIP精品文档

相关文档