Java语言程序设计 上机实验5 异常

Java语言程序设计 上机实验5

实验目的

理解异常的概念,掌握Java的异常处理机制、常见异常的捕获方法、自定义异常及其抛出和捕获方法。

实验内容:

  1. 常见异常的捕获:

编写一个程序,分别生成ArrayIndexOutOfBoundsException类型和NumberFormatException类型的异常;然后改写程序,对这两种类型的异常进行捕获并合理地处理。

另外,思考并回答问题:能否0同时抛出ArrayIndexOutOfBoundsException类型和NumberFormatException类型的异常?为什么?

  1. 自定义异常的定义、拋出和捕获:

(1) 自定义两个异常类:非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。

(2) 定义Student类包含Name和Address属性,和setName、setAddress方法,当姓名长度小于1或者大于5时抛出IllegaNameException,当地址中不含有“省”或者“市”关键字时抛出IllegalAddressException。

(3) 编写程序抛出这两种异常,在main方法中进行捕获并合理地处理。

实验要求:

1. 在实验报告中给出程序运行结果截图。

2. 源程序代码附到实验报告的最后。

3. 认真填写实验报告并妥善存档,在上机实验课之前发送电子版实验报告至 [email protected]。

注意,“邮件标题”与“附件实验报告文件名”均为:

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中的规则,只是提供一个建立异常的平台,定义也是在外面,之前理解错误了,以为新建异常都是在一个类中,对我很有帮助。

时间: 2024-10-08 10:25:02

Java语言程序设计 上机实验5 异常的相关文章

Java语言程序设计 上机实验4 掌握声明接口、一个类实现接口的声明和使用方法

Java语言程序设计 上机实验4 实验目的: 理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口.一个类实现接口的声明和使用方法:熟悉Java语言包和实用包中的常用类. 实验内容:(*)为选做 声明圆柱体类Cylinder,继承椭圆类Ellipse(实现周长Perimeter接口和面积Area接口),为圆柱体类设计较为全面的构造方法,并实现体积Volume接口,计算表面积和体积. 将Java的若干关键字(15个以上)保存在一个字符串数组中,对其按升序排列,再采用顺序查找和二分法查找,判断

2017-2018-2 20165318 实验二《Java面向对象程序设计》实验报告

2017-2018-2 20165318 实验二<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计        班级:1653班        姓名:孙晓暄        学号:20165318 指导教师:娄嘉鹏                          实验日期:2018年4月16日 实验时间:13:45 - 3:25                实验序号:实验二 实验名称:Java面向对象程序设计 实验内容: 初步掌握单元测试和TDD 理解并掌握面向

Java语言程序设计期中考试试题

Java语言程序设计期中考试试题 一.编程题 1. 抽象类 创建闭合图形抽象类(ClosedFigure),定义抽象方法计算面积:创建继承平面图形抽象类的两个子类椭圆(Ellipse)和矩形(Rectangle),在子类中实现计算图形面积的方法.设计测试类Test1进行相应的测试,根据不同类型的平面图形进行相应的面积计算.(30分) 提示:根据椭圆第一定义,用a表示椭圆长半轴的长,b表示椭圆短半轴的长,且a>b>0, 椭圆面积公式:L=πab 2.接口 创建接口Speakable和Runer,

《Java语言程序设计》大作业报告 九宫格游戏

    <Java语言程序设计>大作业报告     中国石油大学(北京)2015 - 2016 学年第二学期     班级:_____计算机14-1_______ 姓名:_____  许 恺_________________ 学号:______2014011329___________     题意分析 程序首先需要九个可以移动的格子,大小相等,有字符串标示,其次要可以相应鼠标和键盘方向键的控制,可以自由移动,并且与此同时记录步数,最后在满足条件时弹出对话框并显示步数以及是否打破记录,关于打破

java语言程序设计(一)-1

java 语言的特点是: 强类型,制定了比较多的语言规范,尽可能在编译阶段检测出更多的错误及警告. 编译和解释,首先将源代码编译成codebyte,运行时,java的运行系统装载和链接需要执行的类,并做必要的优化后,解释执行字节码程序. 自动无用内存回收功能,系统有个垃圾收集器,自动收集程序不再使用的内存. 面向对象,采用面向对象的思想方法.主要有封装,继承,多态等特点. 与平台无关,编译一次,可以跨平台运行,前提是平台上安装java解释器. 安全性,不允许使用指针,进行数组下标越界检测,内存自

java语言程序设计(一)-2

(一)jdk安装及环境变量配置 1.jdk下载 下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载SE标准企业版本,当前已经更新到1.8.X版本了,但是最新版本不支持XP系统,已被验证(无法在xp系统中安装),于是选择1.7版本. 2.环境变量配置 配置path和classpath路径,我的电脑->属性->高级->环境变量,在用户变量中添加java的安装路径,在path中添加bin路径,在cl

20155217 实验四《Java面向对象程序设计》实验报告

20155217 实验四<Java面向对象程序设计>实验报告 一.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握Android中事件处理机制. 二.安装软件出现的问题 1.安装这个版本的,总是在解压安装到十分之一时出现错误,不能正常安装,在请教了其他同学发现并没有出现相似的问题,但是发现了另外一种方法: (1)对安装的版本建立一个快捷方式 (2)对快捷方式进行修改,右键点击属性 (3)运行快捷方

20172304 实验二 《Java面向对象程序设计》 实验报告

20172304 实验二 <Java面向对象程序设计> 实验报告 - 课程名称:<程序设计与数据结构> - 学生班级:1723班 - 学生姓名:段志轩 - 学生学号:20172304 - 实验时间:2018年4月18日 - 实验名称:<Java面向对象程序设计> - 指导老师:王志强老师 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 完成蓝墨云上 (1)-(5)实验. 实验要

20165301陈潭飞2017-2018-2 20165325 实验三《Java面向对象程序设计》实验报告

2017-2018-2 20165325 实验三<Java面向对象程序设计>实验报告 一.敏捷开发与XP实践-1 实验要求: 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能.提交截图,加上自己学号水印. public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new St