- 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 ,因此本敘述
您可能关注的文档
- 31两条直线平行与垂直的判定-长丰试验高级中学.DOC
- 31两条直线平行与垂直的判定.PPT
- 31救生设备的一般要求32个人救生设备33视觉信号34救生筏3.PPT
- 323图形与变换单元教学设计.DOC
- 32不可压缩流体的管流摩阻.PPT
- 32物质含量的测定课件.PPT
- 33 物质跨膜运输 The Movement of Substances Across Cell .PPT
- 338第一次期中考基础生物试题94—03—28.PDF
- 33燃烧热和中和热.PPT
- 34 RL串联电路阻抗计算及功率因数 - 浙江广厦建设职业技术学院.PPT
- 2025年休闲食品健康化转型下的市场拓展策略与渠道创新报告[001].docx
- 农村电商服务站品牌建设:2025年运营模式创新与品牌传播报告.docx
- 2025年互联网金融平台合规整改与金融科技监管的合规监督与可持续发展策略.docx
- 2025年短视频平台内容监管与平台社会责任关系研究报告.docx
- 农产品溯源体系在农产品质量安全监管中的信用体系构建与实施策略研究.docx
- 2025年工业互联网平台数据备份与恢复策略创新方案探讨.docx
- 2025年线上法律咨询服务平台法律咨询行业竞争策略研究.docx
- 农业产业集群农产品流通体系构建与发展机制报告.docx
- 智能制造领航者:2025年3D打印技术在规模生产中的应用效果分析报告[001].docx
- 农村金融服务创新与农村金融消费者权益保护法规实施效果分析报告.docx
文档评论(0)