武汉科技大学 JAVA实验报告 实验四

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实 验 步骤(2):定义包含 main 方法的 Application 类 SelfException。
结 果
步骤(3):在 SelfException 类中添加公共方法:Public static int selfExceptionTest
分 析
(int int1,int int2) throws NumberRangeException 使之能在求 int1,int2 两个


System.out.println ("数组大小异常:"+e);
部 分
}

}


static void outofBound()


{
、 调
try{

int i;


int Array[]=new int[3];
及 实
for(i=0;i<=3;i++){ Array[i]=i; }

}catch(IndexOutOfBoundsException e){

arraySize();

outofBound();

nullPointer(); 及

}

static void arraySize() throws NegativeArraySizeException {

try{

int Array[] = new int[-1];

}catch(NegativeArraySizeException e){


}catch(NumberRangeException e){
部 分
System.out.println(""a="+NumberRangeException.a+"
实 b="+NumberRangeException.b+"\n"+e");


}
程 序
}

public static void main(String[] args){
录 {throw new NumberRangeException("数值超出指定范围", a, b);


}

System.out.println("a="+a+" "+"b="+b+"\n"+"sum="+(a+b));

}

public void GetSum(){

try{selfExceptionTest(1,100);
the array index expression is negative or greater than or equal to the length
of the array.
一个数组访问抛出一个 ArrayIndexOutOfBoundsException 如果值的数组索引表
达式是负面的或大于或等于数组的长度。
实 OutOfMemoryError


A class instance creation expression, array creation expression , or
录 string concatenation operatior expression throws an OutOfMemoryError if there


一个非凡的算术条件时抛出发生。例如,一个整数”除以零”抛出一个这个类的
序 、 实例。
调 试 ArrayStoreException


An assignment to an array component of reference type throws an
及 实
ArrayStoreException when the value to be assigned is not compatible with the
注:“实验记录及个人小结”部分不够可另附页或在背面续写


主 ClassCastException

Thrown to indicate that the code has attempted to cast an object to a
实 subclass of which it is not an instance. For example, the following code
及 is insufficient memory available.


如果没有足够的可用内存,一个类的实例创建表达式,数组创建表达式,或字符
小 串串联操作表达会抛出一个 OutOfMemoryError。
结 NegativeArraySizeException

An array creation expression throws a NegativeArraySizeException if

Object x = new Integer(0);

System.out.println((String)x)

括 ArithmeticException 部

Thrown when an exceptional arithmetic condition has occurred. For

验 example, an integer "divide by zero" throws an instance of this class.

试 reference expression is null.


A method invocation expression that invokes an instance method throws a

实 NullPointerException if the target reference is null.


System.out.println ("数据溢出:"+e);


}


}
static void nullPointer() {
try{
String s;
int a;
s=null;
a=s.length();
}catch(NullPointerException e){
System.out.println ("调用对象为空:"+e);

试 步骤(6):将 outofBound()方法中捕获异常的语句注释掉,重新编译程序,看看会


不会有什么语法错误?如果没错误,执行程序看结果有什么不同?

实 步骤(7):将 array 方法重新定义为如下形式:


void arraySize() throws NegativeArraySizeException{……}


SelfException num=new SelfException();


num.GetSum();
及 实
}
验}


分 析
程序截图:(第一次设 a=1,b=100;第二次设 a=15,b=15。)


注:“实验记录及个人小结”部分不够可另附页或在背面续写


主 思考题:
要 1、翻译下列常用异常类的描述信息
信息科学与工程学院 《Java 程序设计》 上机实验报告
专业班级 实验时间
姓名 指导教师
学号 成绩
实验
实验四 异常类的定义及处理
名称
1) 了解异常处理方法。
2) 熟悉并掌握常见异常的捕获方法。
实验
目的 3) 熟悉 JDK 中已经定义的若干异常类的层次结构。
4) 掌握自定义异常类的创建方法。
主 实验内容:
) 一个方法调用,调用一个实例方法表达抛出 NullPointerException 如果目标参
考是 null。
一个数组访问抛出 NullPointerException 如果值的数组引用表达式是 null。
ArrayIndexOutOfBoundsException
An array access throws an ArrayIndexOutOfBoundsException if the value of
括 部
步骤(3):添加一个方法
分 实
void nullPointer(){……} 生 成并 捕获 IndexOutOfBoundsException 异
验 源
常。
程 步骤(4):在 main 方法中分别调用以上三个方法。

、 步骤(5):将文件保存为 TestException.java,然后编译、调试应用程序。
要 1 、 编 写 程 序 实 现 如 下 功 能 : 生 成 并 捕 获 到 NegativeArraySizeException 和 实
IndexOutOfBoundsException 类型的异常,并显示捕获到的异常信息。然后在此基础 验 记 上生成并捕获到 NullPointerException 类型的异常,并显示捕获到的异常信息。
等 )
数和之前检查两个数的数值范围,若符合条件则求和,否则抛出异常
NumberRangeException。
步骤(4):在 main 方法中调用 selfExceptionTest 方法。
步骤(5):保存文件为 SelfException.java,然后编译并调试程序。
步骤(6):修改 main 方法中调用 selfExceptionTest 方法的实参,看看程序的运行

记 generates a ClassCastException:

Object x = new Integer(0);

System.out.println((String)x);


抛出指示代码试图创建一个对象的一个子类,它不是一个实例。例如,下面的代码
小 生成一个 ClassCastException 异常:
}
}
}
注:“实验记录及个人小结”部分不够可另附页或在背面续写


主 程序截图: 要 实 验 记 录 及 个 人 小 结









序 1、 编写程序实现如下功能:计算两个数之和,参与求和运算的每个数的值都必须在


10-20 之间,当任意一个数超出范围时,抛出自己的异常。
试 结 实验步骤:
果 及 步骤(1):基于系统异常类 Exception,定义自己的异常类 NumberRangeException。


然后修改 arraySize 方法中捕获 NegativeArraySizeException 异常的语


句执行部分。

注:“实验记录及个人小结”部分不够可另附页或在背面续写


主 程序代码:
要 public class TestException {

public static void main(String[] args) {
结果有什么不同。
程序代码:
class NumberRangeException extends Exception{ static int a,b; public NumberRangeException(String message,int a,int b){ super(message); this.a=a; this.b=b;


An array access throws a NullPointerException if the value of the array
果 分 reference expression is null.


一个字段访问抛出 NullPointerException 如果对象的值引用表达式是 null。

括 the value of any dimension expression is less than zero. 部

一个数组创建表达式会抛出一个 NegativeArraySizeException 如果任何维度表

验 达的数值小于零。

程 NullPointerException


A field access throws a NullPointerException if the value of the object
注:“实验记录及个人小结”部分不够可另附页或在背面续写



}
要}
实 public class SelfException {
Байду номын сангаас

public static void selfExceptionTest(int a,int b) throws NumberRangeException{

if((a<10||a>20)||(b<10||b>20))
录 实验步骤:
及 个 步骤(1):编写一个包含 main 方法的 Application 类 TestException,然后定义一

个方法

void arraySize(){……}生成并捕获 NegativeArraySizeException 异常。
结 步骤(2):添加一个方法


void outofBound(){……}生成并捕获 IndexOutOfBoundsException 异常。
相关文档
最新文档