《Java程序设计》上机实验报告 实验四 异常类的定义及处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与工程学院《Java程序设计》上机实验报告
专业班级姓名学号
实验时间指导教师成绩
实验名称实验四异常类的定义及处理
实验目的1)了解异常处理方法。
2)熟悉并掌握常见异常的捕获方法。
3)熟悉JDK中已经定义的若干异常类的层次结构。
4)掌握自定义异常类的创建方法。
主要实验记录及个人小结
(包括部分实验源程序、调试结果及实验结果分析等)1.编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。
1)实验源程序:
public class TestException {
public static void main(String[] args){
outofBound();
arraySize();
nullPointer();
}
static void arraySize(){
try{int p=-5;
int test1[]=new int[p]; //不一定要是-5,只要小于0的就能捕获到无效数组长度的异常}
}
catch (NegativeArraySizeException e) {
System.out.println("捕获异常:\n"+e);
System.out.println(e.toString()); //把捕获的错误异常转变为字符串类型,传给println()方法,用以输入。
}finally{
System.out.println("捕获完成\n"); } }
static void outofBound(){
try {int test2[]=new int[10];
test2[100]=1; //超出数组长度
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("捕获异常:\n"+e);
System.out.println(e.toString());
}
finally{
System.out.println("捕获完成\n\n");
}
}
static void nullPointer(){
try {int test3[]=null;
test3[1]=100; //空指针无法赋值
} catch (NullPointerException e) {
主要实验记录及个人小结
(包括部分实验源程序、调试结果及实验结果分析等) System.out.println("捕获异常:\n"+e);
System.out.println(e.toString());
}
finally{
System.out.println("捕获完成 \n\n")}
}
}
2)调试结果:
将outofBound()方法中捕获异常的语句注释掉,重新编译程序,看看会不会有什么语法错误?如果没错误,执行程序看结果有什么不同?
static void outofBound(){
try { int test2[]=new int[10];
test2[100]=1; //超出数组长度
} //catch (ArrayIndexOutOfBoundsException e) {
// System.out.println("捕获异常:\n"+e);
// System.out.println(e.toString());
// }
主要实验记录及个人小结
(包括部分实验源程序、调试结果及实验结果分析等)将array方法重新定义为如下形式:
void arraySize() throws NegativeArraySizeException{……}
然后修改arraySize方法中捕获NegativeArraySizeException异常的语句执行部
分。
public class TestException {
public static void main(String[] args){
try{
outofBound();
arraySize();
nullPointer();
}
catch(NegativeArraySizeException e)
{System.out.println(e.toString());}
}
......
(中间代码不变)
static void nullPointer(){
try {
int test3[]=null;
test3[1]=100; //空指针无法赋值
} catch (NullPointerException e) {
System.out.println("捕获异常:\n"+e);
System.out.println(e.toString());
}
finally{
System.out.println("捕获完成 \n\n");
}
}
}