華聯(lián)學(xué)院Java語言程序設(shè)計課件06異常_第1頁
華聯(lián)學(xué)院Java語言程序設(shè)計課件06異常_第2頁
華聯(lián)學(xué)院Java語言程序設(shè)計課件06異常_第3頁
華聯(lián)學(xué)院Java語言程序設(shè)計課件06異常_第4頁
華聯(lián)學(xué)院Java語言程序設(shè)計課件06異常_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章異常異常的概念程序中的錯誤: 編譯錯誤 運(yùn)行錯誤異常的概念:指程序在執(zhí)行過程中出現(xiàn)程序本身沒有預(yù)料的情況,從而導(dǎo)致程序錯誤結(jié)束使用異常機(jī)制的目的:用來在發(fā)生運(yùn)行異常時告訴程序如何控制自身的運(yùn)行,以防止錯誤的進(jìn)一步惡化一、異常處理機(jī)制 Java使用異常對Java程序給出一個統(tǒng)一和相對簡單的拋出和處理錯誤的機(jī)制。如果一個方法本身能拋出異常,當(dāng)所調(diào)用的方法出現(xiàn)異常時,調(diào)用者可以捕獲異常使之得到處理;也可以回避異常,這時異常將在調(diào)用的堆棧中向下傳遞,直到被處理。和傳統(tǒng)的方法比較異常的優(yōu)點(diǎn):1. 把錯誤代碼從常規(guī)代碼中分離出來2. 把錯誤傳播給調(diào)用堆棧3. 按錯誤類型和錯誤差別分組4. 系統(tǒng)提供了

2、對于一些無法預(yù)測的錯誤的捕獲和處理5. 克服了傳統(tǒng)方法的錯誤信息有限的問題異常的處理過程創(chuàng)建異常對象拋出異常對象接收并處理程序運(yùn)行時出現(xiàn)錯誤 異常類 在Java中,將異常情況分為Exception(異常)和Error(錯誤)兩大類。 Error 類對象由 Java 虛擬機(jī)生成并拋出;Exception 類對象由應(yīng)用程序處理或拋出。ObjectThrowableExceptionError 異常類的繼承結(jié)構(gòu) Exception子類的繼承關(guān)系ExceptionClassNotFoundException 找不到類ClassNotSupportedException試圖復(fù)制一個沒有實現(xiàn)接口的對象Il

3、legalAccessException試圖訪問一個類被拒絕InstantiationException試圖創(chuàng)建一個抽象類或接口的對象InterruptedException一個線程被另外一個線程中斷NoSuchMethodException請求方法不存在RuntimeException系統(tǒng)異常ArithmeticException 算術(shù)錯誤,例如除零ArrayStoreException 數(shù)組元素賦值類型不兼容ClassCastException非法強(qiáng)制轉(zhuǎn)換類型IllegalArgumentException使用非法參數(shù)調(diào)用一個方法Exception子類(續(xù))IllegalThreadSta

4、teException 被請求的操作和當(dāng)前線程狀態(tài)不匹配NumberFormatException 從一個字符串到一個數(shù)字格式的無效轉(zhuǎn)換IllegalMonitorStateException非法監(jiān)控操作IndexOutOfBoundsException一些類型的索引超出范圍ArrayIndexOutOfBoundsException 數(shù)組索引超出范圍StringIndexOutOfBoundsException 字符索引超出范圍NegativeArraySizeException 以負(fù)值創(chuàng)建數(shù)組NullPointerException 使用無效的null引用SecurityException

5、 試圖違反安全性Exception 類的主要方法public Exception( );public Exception(String s);public String toString( );public String getMessage( );二、異常處理方法 異常處理的方法有兩種: 一種方法是使用trycatchfinally結(jié)構(gòu)對異常進(jìn)行捕獲和處理; 二種方法是通過throws和throw拋出異常。 異常處理在Java中,可以通過trycatchfinally結(jié)構(gòu)對異常進(jìn)行捕獲和處理,其形式如下:try 可能出現(xiàn)異常的程序代碼catch (異常類名1 異常對象名1) 異常類名1對應(yīng)的

6、異常處理代碼catch (異常類名2 異常對象名2) 異常類名2對應(yīng)的異常處理代碼finally 必須執(zhí)行的代碼 Java實例異常public class Exception2public static void main(String args) tryint x, y;x=15;y=0;System.out.println(x/y);System.out.println(Computing successfully!); catch (ArithmeticException e)System.out.println( ArithmeticException catched ! );Syst

7、em.out.println(Exception message:+e.toString(); finally System.out.println(Finally block.); 拋出異常語句通常情況下,異常是由系統(tǒng)自動捕獲的。但程序員也可以自己通過throw語句拋出異常。throw語句的格式為: throw new 異常類名(信息) 其中異常類名為系統(tǒng)異常類名或用戶自定義的異常類名,“信息”是可選信息。如果提供了該信息,toString()方法的返回值中將增加該信息內(nèi)容。 Java實例拋出異常public class Exception3 public static int Sum(in

8、t n) if (n 0) throw new IllegalArgumentException(n應(yīng)該為正整數(shù)!); int s = 0; for (int i=0; i=n; i+) s = s + i; return s; public static void main(String args) try int n = Integer.parseInt(args0); System.out.println(Sum(n); catch (ArrayIndexOutOfBoundsException e) System.out.println(命令行為:+java Exception3 );

9、 catch (NumberFormatException e2) System.out.println(參數(shù)應(yīng)為整數(shù)!); catch (IllegalArgumentException e3) System.out.println(錯誤參數(shù):+e3.toString(); finally System.out.println(程序結(jié)束!); 拋出異常選項在有些情況下,一個方法并不需要處理它所生成的異常,而是向上傳遞,由調(diào)用該方法的其他方法來捕獲該異常,這時就要用到throws子句。其格式如下: 返回類型 方法名(參數(shù)表) throws 異常類型名 聲明部分 自定義異常類 自定義異常類可以通

10、過繼承Exception類來實現(xiàn)。其一般形式為: class 自定義異常類名 extends Exception 異常類體; Java實例子定義異常import javax.swing.JOptionPane;class mathException extends Exception mathException() System.out.println(輸入數(shù)據(jù)不正確); class Exception6 public static String name; public static int pay; public static void inputdata() throws mathException try name=JOptionPane.showInputDialog(請輸入您的姓名); if(name.equals() throw new Exception(); pay=Integer.parseInt(JOptionPane.showInputDialog(請輸入您的月工資); if(pay0) throw new mathException(); Java實例(續(xù)) catch(Exception e) System.out.println(e); System.exit(0);

溫馨提示

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

評論

0/150

提交評論