




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、上海大學上海大學CIMS和機器人中心和機器人中心Java在工程中的應用在工程中的應用 本科生課程:本科生課程:09326080劉麗蘭2022年7月8日姓姓 名:名: 劉麗蘭劉麗蘭學科專業(yè):學科專業(yè): 機械制造及自動化機械制造及自動化聯系電話:聯系電話: 56331763EMail: 上海大學機電工程與自動化學院上海大學機電工程與自動化學院2022年年7月月8日日2上海大學上海大學CIMS和機器人中心和機器人中心第第8周周3上海大學上海大學CIMS和機器人中心和機器人中心回顧回顧1.類的多態(tài)性類的多態(tài)性 重載和覆蓋重載和覆蓋2. 抽象類和最終類抽象類和最終類public abstract cla
2、ss ClosedFigure public abstract double area(); public abstract double perimeter();3. 接口、內部類接口、內部類public interface Area public abstract double area(); 4上海大學上海大學CIMS和機器人中心和機器人中心第第5章章 異常處理異常處理5.1 程序錯誤與處理程序錯誤與處理5.2 Java的異常處理的異常處理5上海大學上海大學CIMS和機器人中心和機器人中心1. 異常的概念:異常的概念: 在進行程序設計時,錯誤的產生是不可避免的,如何在進行程序設計時,錯誤
3、的產生是不可避免的,如何處理錯誤?把錯誤交給誰去處理?程序又該如何從錯誤處理錯誤?把錯誤交給誰去處理?程序又該如何從錯誤中恢復?這是任何程序設計語言都要解決的問題。中恢復?這是任何程序設計語言都要解決的問題。 所謂錯誤,是在程序運行過程中發(fā)生的異常事件,所謂錯誤,是在程序運行過程中發(fā)生的異常事件,比如除比如除0溢出、數組越界、文件找不到等,這些事件的溢出、數組越界、文件找不到等,這些事件的發(fā)生將阻止程序的正常運行。為了加強程序的魯棒性發(fā)生將阻止程序的正常運行。為了加強程序的魯棒性,程序設計時,必須考慮到可能發(fā)生的異常事件并做出相程序設計時,必須考慮到可能發(fā)生的異常事件并做出相應的處理。應的處理
4、。5.1 程序錯誤與處理程序錯誤與處理6上海大學上海大學CIMS和機器人中心和機器人中心什么情況下使用異常處理機制?什么情況下使用異常處理機制?p 當方法因為自身無法控制的原因而不能完成其任務當方法因為自身無法控制的原因而不能完成其任務p 文件不存在,網絡連接無法建立文件不存在,網絡連接無法建立p 處理在方法、類庫、類中拋出的例外處理在方法、類庫、類中拋出的例外p 如如FileInputStream.read產生產生IOExceptionp 在大的項目中采用統(tǒng)一的方式處理錯誤時在大的項目中采用統(tǒng)一的方式處理錯誤時p 如編寫一個文字處理器如編寫一個文字處理器p 異常應該是不經常發(fā)生但卻可能發(fā)生的
5、故障異常應該是不經常發(fā)生但卻可能發(fā)生的故障p 一定發(fā)生的事件不應該用異常機制來處理一定發(fā)生的事件不應該用異常機制來處理p 異常處理用于使系統(tǒng)從故障中恢復異常處理用于使系統(tǒng)從故障中恢復p 提示信息提示信息/不產生無效的結果不產生無效的結果/釋放資源釋放資源5.1 程序錯誤與處理程序錯誤與處理7上海大學上海大學CIMS和機器人中心和機器人中心2. 異常處理機制的優(yōu)點:異常處理機制的優(yōu)點:p 從從語法語法上看,異常處理語句將程序正常代碼與錯誤處理代上看,異常處理語句將程序正常代碼與錯誤處理代碼分開,使程序結構清晰,算法重點突出,可讀性強。碼分開,使程序結構清晰,算法重點突出,可讀性強。p 從從運行效
6、果運行效果看,異常處理語句使程序具有處理錯誤的能力???,異常處理語句使程序具有處理錯誤的能力。即使發(fā)生了運行錯,應用程序能夠捕獲異常并即使處理異即使發(fā)生了運行錯,應用程序能夠捕獲異常并即使處理異常,使程序從運行錯誤中很好地恢復并繼續(xù)運行,而不會常,使程序從運行錯誤中很好地恢復并繼續(xù)運行,而不會導致程序運行非正常終止。導致程序運行非正常終止。 異常處理是捕獲和處理運行時錯誤的一種機制異常處理是捕獲和處理運行時錯誤的一種機制5.1 程序錯誤與處理程序錯誤與處理8上海大學上海大學CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理3. Java的錯誤和異常的錯誤和異常 錯誤與異常錯誤
7、與異常按照錯誤性質,按照錯誤性質,Java將運行時錯誤分為:錯誤和異常。將運行時錯誤分為:錯誤和異常。 錯誤(錯誤(error)指程序運行時遇到的硬件或操作系統(tǒng)的)指程序運行時遇到的硬件或操作系統(tǒng)的錯誤,如:內存溢出、虛擬機錯誤等。錯誤,如:內存溢出、虛擬機錯誤等。錯誤對程序而言是錯誤對程序而言是致命性致命性的,的, 錯誤將導致程序無法運錯誤將導致程序無法運行,程序本身不能處理錯誤。行,程序本身不能處理錯誤。 異常(異常(exception)指在硬件和操作系統(tǒng)正常時,程序)指在硬件和操作系統(tǒng)正常時,程序遇到的運行錯。如:除數為遇到的運行錯。如:除數為0、數組越界等。、數組越界等。異常對于程序而
8、言異常對于程序而言是非致命性是非致命性的,雖然異常會導致程的,雖然異常會導致程序非正常終止,但序非正常終止,但Java的異常處理機制使程序自身能的異常處理機制使程序自身能夠捕獲和處理異常,使程序仍可繼續(xù)運行。夠捕獲和處理異常,使程序仍可繼續(xù)運行。9上海大學上海大學CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理3. Java的錯誤和異常的錯誤和異常編譯程序非正常終止運行有語法錯?有 Java程序修改運行出現運行時錯誤?錯誤程序運行正常結束有沒有沒有異常程序非正常終止運行事先處理避免異常事后處理異常處理修改Java程序發(fā)現程序發(fā)現錯誤和異常:錯誤和異常: 10上海大學上海大學
9、CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理3. Java的錯誤和異常的錯誤和異常 錯誤類和異常類錯誤類和異常類 Error類類由由Java虛擬機生成并拋出給系統(tǒng),有內存溢出錯誤、虛擬機生成并拋出給系統(tǒng),有內存溢出錯誤、動態(tài)鏈接錯誤等。動態(tài)鏈接錯誤等。 Exception異常類異常類是是Java程序捕獲和處理的對象。異常對象中包含錯誤程序捕獲和處理的對象。異常對象中包含錯誤的位置和特征信息。的位置和特征信息。除數為除數為0的算術異常、數組下標越界異常、空指針異的算術異常、數組下標越界異常、空指針異常等。常等。11上海大學上海大學CIMS和機器人中心和機器人中心5.1 程
10、序錯誤與處理程序錯誤與處理3. Java的錯誤和異常的錯誤和異常 程序對錯誤與異常的三種處理方式程序對錯誤與異常的三種處理方式 程序不能處理錯誤程序不能處理錯誤由系統(tǒng)處理,由系統(tǒng)處理,Java程序本身不能對錯誤進行處理。程序本身不能對錯誤進行處理。 程序應避免而不捕獲的異常程序應避免而不捕獲的異常程序程序能夠預見能夠預見的異常,如除數為的異常,如除數為0、數組下標越界等,、數組下標越界等,程序應該考慮周全進行事先處理,盡量避免發(fā)生異常。程序應該考慮周全進行事先處理,盡量避免發(fā)生異常。 必須捕獲的異常必須捕獲的異常程序程序無法預見無法預見的、由特殊環(huán)境錯誤造成的異常,如:的、由特殊環(huán)境錯誤造成的
11、異常,如:文件未找到、網絡通信失敗等,必須進行捕獲和處理。文件未找到、網絡通信失敗等,必須進行捕獲和處理。12上海大學上海大學CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理錯誤類和異常錯誤類和異常類層次結構:類層次結構:13上海大學上海大學CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理3. Java的錯誤和異常的錯誤和異常例:例:P152,【例【例5.2】 發(fā)現數組下標越界的語義錯。發(fā)現數組下標越界的語義錯。public class Outofbounds public static void main(String args) int a=1,2,
12、3,4;for(int i=0;i5;i+)System.out.println(“ a ”+i+ “=”+ai);結果:結果:Exception in thread “main” java.lang.ArrayIndexOutOfBounds Exception:4 at Outofbounds.main(Outofbounds.java:7)14上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的的異常處理異常處理Java的異常處理機制包括:的異常處理機制包括: 異常類體系異常類體系 異常處理的異常處理的try語句語句 拋出自定義異常對象的拋出自定義異常對象的throw語句語
13、句 聲明方法拋出異常的聲明方法拋出異常的throws子句子句15上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的的異常處理異常處理1. 異常類說明異常類說明1. Exception異常類異常類Exception類的父類類的父類Throwable部分聲明:部分聲明:public class Throwable implements Serializable private String detailMessage; /異常信息描述異常信息描述 public Throwable() public Throwable(String message) public String ge
14、tMessage() /獲得異常信息獲得異常信息 public String toString() /獲得異常對象的描述信息獲得異常對象的描述信息 public void printStackTrace() /顯示異常棧跟蹤信息顯示異常棧跟蹤信息16上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的的異常處理異常處理1. 異常類說明異常類說明1. Exception異常類異常類異常類異常類Exception類只聲明了若干構造方法:類只聲明了若干構造方法:public class Exception extends Throwable public Exception() pub
15、lic Exception(String s)從父類從父類Throwable中繼承了成員變量和成員方法。中繼承了成員變量和成員方法。17上海大學上海大學CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理4. RuntimeException 異常類說明異常類說明Java異常類主要分為運行異常和非運行異常。運行異常由程異常類主要分為運行異常和非運行異常。運行異常由程序本身錯誤引發(fā)的異常,可以避免。序本身錯誤引發(fā)的異常,可以避免。 算術異常算術異常ArithmeticException:除數為:除數為0 空對象異常空對象異常NullPointerExceptionint a =
16、null;a0 = 1; /對空數組中的元素進行操作,產生空對對空數組中的元素進行操作,產生空對象異常象異常 類型強制轉換異常類型強制轉換異常ClassCastExceptionObject obj = new Object();String str = (String) obj;18上海大學上海大學CIMS和機器人中心和機器人中心5.1 程序錯誤與處理程序錯誤與處理4. RuntimeException 異常類說明異常類說明 負數組長度異常負數組長度異常NegativeArraySizeExceptionint a = new int -1;/產生負數組長度異常產生負數組長度異常 數組下標越
17、界異常數組下標越界異常ArrayIndexOutOfBoundsExceptionint a = new int1;a1 = 1;/產生數組下標越界異常產生數組下標越界異常 數值格式異常數值格式異常NumberFormatException將字符串轉換成整數時有可能發(fā)生。將字符串轉換成整數時有可能發(fā)生。int i=Integer.parseInt(“123”); /正確,不產生異常正確,不產生異常int j = Integer.parseInt(abc); /產生數值格式異常產生數值格式異常19上海大學上海大學CIMS和機器人中心和機器人中心異常處理機制的關鍵字:異常處理機制的關鍵字:p tr
18、y p 定義可能產生異常的代碼段定義可能產生異常的代碼段p catch (Etype e) p 用于捕獲一個異常用于捕獲一個異常p finally p 用于做統(tǒng)一的事后處理,如釋放資源用于做統(tǒng)一的事后處理,如釋放資源p throw e;p 用于拋出一個異常用于拋出一個異常p throws Etype1, Etype2 p 用于聲明方法可能拋出的異常類型用于聲明方法可能拋出的異常類型throw / throwstry-catch-finally5.2 Java的異常處理措施的異常處理措施20上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的異常處理措施的異常處理措施1. 異常處理
19、語句異常處理語句 異常處理語句語法:異常處理語句語法:try-catch-finallytry 語句語句1 /存在潛在異常的代碼存在潛在異常的代碼catch (異常類異常類 異常對象異常對象) 語句語句2 /捕獲到異常并進行處理的代碼捕獲到異常并進行處理的代碼finally 語句語句3 /最后必須執(zhí)行的代碼,無論是否捕獲到異常最后必須執(zhí)行的代碼,無論是否捕獲到異常try、catch、finally為關鍵字。為關鍵字。catch子句可以有一個或多個,但至少子句可以有一個或多個,但至少要有一個要有一個catch子句,子句,finally子句可以省略。子句可以省略。21上海大學上海大學CIMS和機器
20、人中心和機器人中心5.2 Java的異常處理措施的異常處理措施舉例:舉例:String str=“123”;try int i = Integer.parseInt (str);/調用聲明拋出異常的方法調用聲明拋出異常的方法Catch (NumberFormatException e) /捕獲捕獲parseInt()方法聲明的異常對象方法聲明的異常對象 System.out.println (str+ “字符串不能轉換為整數字符串不能轉換為整數”);Catch (Exception e) /捕獲所有異常對象捕獲所有異常對象 e.printStackTrace();/顯示異常棧跟蹤信息顯示異常棧
21、跟蹤信息22上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的異常處理措施的異常處理措施1. 異常處理語句異常處理語句出 現 運 行 時 錯 誤 , Java拋 出 異 常 ,中 斷 執(zhí) 行 語 句 序 列沒 有 運 行 時 錯誤 , 沒 有 產 生異 常 try 語 句 1 catch (捕 獲 異 常 對 象 ) 異 常 處 理 finally 語 句 3 是異 常 處 理 后 程 序 停 止 運 行 catch捕 獲 異 常 對 象 ?否異常處理語句的執(zhí)行流程異常處理語句的執(zhí)行流程多個多個catch語句需按異語句需按異常類從子類到父類的常類從子類到父類的次序依次排列。次序
22、依次排列。23上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的異常處理措施的異常處理措施public class Try2 public static void main (String args) int i=0; int a=5,6,7,8; for (i=0;i5;i+) try System.out.print(“a”+i+ “/”+i+ “=”+(ai/i);catch (ArrayIndexOutofBoundsException e) System.out.print(“捕獲數組下標越界異常!捕獲數組下標越界異常!”);catch(ArithmeticExcep
23、tion e) System.out.print(“捕獲算術異常!捕獲算術異常!”); catch(Exception e) System.out.print(“捕獲捕獲”+e.getMessage()+ “異常!異常!”);finally System.out.println(“ i=”+i);System.out.println(“繼續(xù)!繼續(xù)!”);程序運行結果:程序運行結果:捕獲算術異常!捕獲算術異常! i0a1/1=6 i=1a2/2=3 i=2a3/3=2 i=3捕獲數組下標越界異常!捕獲數組下標越界異常! i4繼續(xù)!繼續(xù)!24上海大學上海大學CIMS和機器人中心和機器人中心publ
24、ic class ExceptionDemo public static void main(String args) try FileInputStream fis = new FileInputStream(test1.txt); int b; while( (b=fis.read()!=-1 ) System.out.print(b); fis.close(); catch(IOException e) catch(FileNotFoundException e) /永遠不會被執(zhí)行永遠不會被執(zhí)行25上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的異常處理措施的異常處理措
25、施2. 拋出異常拋出異常 throw 異常對象異常對象 throw是關鍵字,是關鍵字,是程序創(chuàng)建的指定異常是程序創(chuàng)建的指定異常類對象。類對象。 由由throw語句拋出的異常也必須由語句拋出的異常也必須由try語句捕獲并處理。語句捕獲并處理。26上海大學上海大學CIMS和機器人中心和機器人中心5.2 Java的異常處理措施的異常處理措施2. 拋出異常拋出異常例:例:public void set(int age) if (age0 & age0 & age45) this.age = age; else throw new Exception(IllegalAgeData:“+age); /拋出異常拋出異常 catch (Exception e) System.out.println(e.toString(); 27上海大學上海大學CIMS和機器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高等教育自學考試《00074中央銀行概論》模擬試卷三
- 新浪樂居萬達中央旅游城歲末營銷方案
- 《人工智能應用與發(fā)展:高中人工智能學習指南》
- 商業(yè)推廣項目合作協議書
- 環(huán)保技術研發(fā)與推廣戰(zhàn)略合作協議
- 云南省昭通一中教研聯盟2024-2025學年高一上學期期中質量檢測地理(B卷)試題(含答案)
- 裝修材料購銷合同書
- 產品供應鏈戰(zhàn)略合作協議簽署函件
- 彼得兔歷險記故事解讀
- 客戶滿意度調查結果表格-客戶服務
- 藝術創(chuàng)新的思維技巧
- 陜西省西安市鐵一中2025屆高三下學期聯合考試數學試題含解析
- 腹膜透析操作流程及評分標準
- 開封市第一屆職業(yè)技能大賽美容項目技術文件(世賽項目)
- 醫(yī)院窗簾、隔簾采購 投標方案(技術方案)
- 控制計劃課件教材-2024年
- 川教版2024-2025學年六年級下冊信息技術全冊教案
- 第45屆世界技能大賽移動機器人項目福建省選拔賽技術文件(定稿)
- 招標代理機構遴選投標方案(技術標)
- 彩鋼瓦雨棚施工技術標準方案
- 2024年新疆(兵團)公務員考試《行測》真題及答案解析
評論
0/150
提交評論