Java語言程序設計 上機實驗5 異常


Java語言程序設計 上機實驗5

實驗目的

理解異常的概念,掌握Java的異常處理機制、常見異常的捕獲方法、自定義異常及其拋出和捕獲方法。

實驗內容:

  1. 常見異常的捕獲:

編寫一個程序,分別生成ArrayIndexOutOfBoundsException類型和NumberFormatException類型的異常;然后改寫程序,對這兩種類型的異常進行捕獲並合理地處理。

另外,思考並回答問題:能否0同時拋出ArrayIndexOutOfBoundsException類型和NumberFormatException類型的異常?為什么?

  1. 自定義異常的定義、拋出和捕獲:

(1) 自定義兩個異常類:非法姓名異常IllegaNameException和非法地址異常IllegalAddressException

(2) 定義Student類包含NameAddress屬性,和setNamesetAddress方法,當姓名長度小於1或者大於5時拋出IllegaNameException,當地址中不含有“省”或者“市”關鍵字時拋出IllegalAddressException

(3) 編寫程序拋出這兩種異常,在main方法中進行捕獲並合理地處理。

實驗要求:

1. 在實驗報告中給出程序運行結果截圖。

2. 源程序代碼附到實驗報告的最后。

3. 認真填寫實驗報告並妥善存檔,在上機實驗課之前發送電子版實驗報告至 wsycup@foxmail.com

注意郵件標題附件實驗報告文件名均為:

Java1實驗報告N_學號_姓名

其中N為阿拉伯數字,指第幾次實驗,例如

Java1實驗報告3_ 2012010400_李雷

請嚴格按照規定的格式發送郵件(注意標題中Java”后的數字“1”)郵件標題不符合格式要求等同於未交作業,並在規定的時間發送實驗報告郵件,過期無效。

4. 實驗報告雷同者將不能得到相應的平時分。

 

 

附錄:實驗報告

實驗題目__實驗5________

學號__2014011329__    姓名___許愷____     班級___計算機14-1___     時間____________

實驗題目解答

一.

 

二.

 

:源程序

一.

package com.Test5;

public class Test5 {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[]=new int[8];
        int b;
        try{
            for(int i=0;i<10;i++){
                System.out.println(a[i]);
            }
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println("數組越界");
        }
        try{
            b=Integer.parseInt("23gf");
        }
        catch(NumberFormatException e){
            System.out.println("類型格式轉換錯誤");
        }
    }
}

二.Test55.java    
package com.Test55;

public class Test55 {

    /**
     * @param args
     * @throws IllegalAddressException 
     * @throws IllegaNameException 
     */
    public static void main(String[] args) throws IllegalAddressException, IllegaNameException {
        // TODO Auto-generated method stub
        Student s=new Student() ;
        s.setName("測試姓名字符串");
        s.setAddress("測試地址字符串");
    }

}

Student.java
package com.Test55;

public class Student {
    String Name;
    String Address;
    public void setName(String Name)throws IllegaNameException{
        if(Name.length()<1||Name.length()>5)
            throw new IllegaNameException(Name+",長度出錯,應在1-5之間。");
        this.Name=Name;
    }
    public void setAddress(String Address)throws IllegalAddressException{
        boolean j=false;
        for(int i=0;i<Address.length();i++){
            if(Address.charAt(i)=='省'||Address.charAt(i)=='市'){
                j=true;
                break;
            }
                
        }
        if(j==false){
            throw new IllegalAddressException(Address+"中沒有‘省’或‘市’出現,請修正");
        }
        this.Address=Address;
    }
}

IllegaNameException.java
package com.Test55;

public class IllegaNameException extends Exception {
    public  IllegaNameException(){
        super();
    }
    public  IllegaNameException(String s){
        super(s);
    }
}

IllegalAddressException.java
package com.Test55;

public class IllegalAddressException extends Exception {
    public IllegalAddressException(){    
        super();
    }
    public IllegalAddressException(String s){    
        super(s);
    }
}

心得和體會:

對於異常的處理經過編程之后才明白他的含義和用法,遵循java中的規則,只是提供一個建立異常的平台,定義也是在外面,之前理解錯誤了,以為新建異常都是在一個類中,對我很有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM