《JAVA程序設計實用教程》07異常處理_第1頁
《JAVA程序設計實用教程》07異常處理_第2頁
《JAVA程序設計實用教程》07異常處理_第3頁
《JAVA程序設計實用教程》07異常處理_第4頁
《JAVA程序設計實用教程》07異常處理_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Java程序設計程序設計Java Programming1第七章 異常處理Java程序設計程序設計Java Programming2:為什么要異常處理?異常處理程序怎么編寫?:java.lang包中的Object類、Math類、System類、Runtime類主要方法;java.util包中Date類、Calendar類、Random類以及各種集合;for循環(huán)簡化方法Java程序設計程序設計Java Programming3異異常常處處理理7.4.1 throws語句 7.3、異常處理模式 7.4、重新拋出異常7.4.2 throw語句7.3.1 try-catch-finally語句7.3.

2、2 異常類成員方法7.3.3 異常捕獲與處理 7.1、為什么要異常處理 7.2、Java中的異常類 7.5、異常處理原則Java程序設計程序設計Java Programming4用戶的角度。因為用戶非專業(yè)人員,或者不熟悉軟件系統(tǒng),在使用過程中常常會出現(xiàn)輸入錯誤的情況,或者是系統(tǒng)級的非正常情況,此時會彈出一個只有專業(yè)人員才能讀懂的信息。因此,需要由程序對這個專業(yè)的非正常信息進行捕獲,并給用戶一個友好的出錯提示友好的出錯提示。出現(xiàn)異常不處理,程序會終止,程序終止了,系統(tǒng)不能正常運行系統(tǒng)不能正常運行。 因為程序的執(zhí)行過程中總會遇到許多可預知或不可預知的錯誤事件,例如內(nèi)存分配、某個目錄下本應存在的一個

3、文件找不到、數(shù)組越界等等。這些錯誤事件存在非常大的隱患,因此程序員總需要在程序中不斷加入if-else語句,來判斷是否有異常出現(xiàn),程序可讀性將變差程序可讀性將變差,總是有許多與真正工作無關的代碼,而且也給程序員增加了極大的工作負擔,多數(shù)類似的處理錯誤的代碼模塊將充斥著整個應用邏輯。異常產(chǎn)生的原因:試圖打開的文件不存在、網(wǎng)絡連接中斷、算術運算被0除、數(shù)組下標越界、要加載類文件不存在等用戶的輸入都是邪惡的!用戶的輸入都是邪惡的! Java程序設計程序設計Java Programming5/*異常事件示例:數(shù)組下標越界出現(xiàn)異常*/public class TestException public s

4、tatic void main(String args )int i=0;String greetings =Hello World!, Hello!, HELLO WORLD!;while ( i=-2;i-)c=b/i;System.out.println(i=+i);catch(ArithmeticException ae) System.out.println(捕獲了一個零除異常);catch(Exception ex) System.out.println(捕獲了一個未知類型的異常);finally System.out.println(異常處理結束); Java程序設計程序設計Ja

5、va Programming10public class TestExcepMethod public static void main(String args) try throw new Exception(人為拋出的測試異常!); catch(Exception e)System.out.println(異常已捕獲。); System.out.println(e.getMessage(): + e.getMessage();System.out.println(e.toString(): + e.toString();System.out.println(e.printStackTrac

6、e():);e.printStackTrace(); Java程序設計程序設計Java Programming11class TestExcepRoutepublic static void main(String args)trymethod();catch(Exception e)System.out.print(m);System.out.println(n);static void createException()throw new ArrayIndexOutOfBoundsException();static void method()trycreateException();Sy

7、stem.out.print(a);catch(ArithmeticException e) System.out.print(b);finallySystem.out.print(c);System.out.print(d);catch(ArrayIndexOutOfBoundsException e)第一次運行結果:cmn第二次運行結果:bcdnJava程序設計程序設計Java Programming12 throws關鍵字通常被應用在聲明方法聲明方法時,用來指定可能拋出的異常 。 對聲明了throws方法的調(diào)用程序中必須對其進行捕獲必須對其進行捕獲 。 class TestThrowsp

8、ublic static void main(String args)trymethod();catch(IOException ioe)/捕獲IOException異常/public void method( ) throws IOException /Java程序設計程序設計Java Programming13 throw關鍵字通常用在方法體方法體中,并且拋出一個異常對象 在執(zhí)行到throw語句時立即停止,它后面的語句都不執(zhí)行 public class TestThrow /創(chuàng)建類static int quotient(int x,int y) throws MyException/定義方

9、法拋出異常if(y 0) /判斷參數(shù)是否小于0throw new MyException(除數(shù)不能是負數(shù));/異常信息return x/y;/返回值public static void main(String args) /主方法try /try語句包含可能發(fā)生異常的語句int result = quotient(3,-1);/調(diào)用方法quotient()catch (MyException e) /處理自定義異常System.out.println(e.getMessage(); /輸出異常信息Java程序設計程序設計Java Programming14catch (ArithmeticEx

10、ception e) /處理ArithmeticException異常System.out.println(除數(shù)不能為0);/輸出提示信息catch (Exception e) /處理其他異常System.out.println(程序發(fā)生了其他的異常);class MyException extends Exception /創(chuàng)建自定義異常類String message; /定義String類型變量public MyException(String ErrorMessagr) /父類方法message = ErrorMessagr;public String getMessage() /覆蓋g

11、etMessage()方法return message;Java程序設計程序設計Java Programming15 Java的異常處理是通過5個關鍵詞來實現(xiàn)的:try、catch、throw、throws和finally。 一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會拋出(throws)一個異常,這時候可以通過它的類型來捕捉(catch)它,或最后(finally)由缺省處理器來處理。 對于一個應用系統(tǒng)來說,拋出大量異常是有問題 的,應該從程序開發(fā)角度盡可能的控制異常發(fā)生的可能。 對于檢查異常,如果不能行之有效的處理,還不如轉換為RuntimeException拋出。這樣也讓上級的代碼有選擇的余地可處理也可不處理。 對于一個應用系統(tǒng)來說,應該有自己的一套異常處理框架,這樣當異常發(fā)生時,也能得到統(tǒng)一的處理風格,將優(yōu)雅的異常信息反饋給用戶。 能處理就早處理,盡可能在當前程序中解決問題,否則應將異常向更外層的程序拋出。 簡化編碼。不要因加入異常處理而使程序變得

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論