- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 ,因此本敘述
您可能关注的文档
最近下载
- 初中音乐公开课《爱我中华》优秀教学设计与反思.docx
- J-STD-002C引脚,端子,焊片和接线柱可焊性测试英文版.pdf VIP
- 燃气公司生产安全标准化手册资料.pdf VIP
- 《海底世界》作业设计.docx VIP
- 2024年湖南华容县事业单位招聘专业技术人员历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版.docx
- 安全生产标准化资料安全投入.doc VIP
- 广东省韶关市2022-2023学年高一下学期期末数学试题含答案.pdf VIP
- 打印设备维护服务投标方案.docx
- T_CAMDI 050.1-2020 内窥镜配套使用器械 第1部分 通用要求.pdf
- 《我来了两个多月了》教学设计.pptx VIP
文档评论(0)