实验10 JAVA 异常处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训报告
实验9 JA V A 异常处理
【实验目的】
1.掌握JAVA语言异常的概念。
2.掌握JAVA语言系统异常类的层次关系。
3.掌握JAVA语言系统异常类的功能和使用。
4.掌握自定义异常类的使用。
【预习内容】
1.JAVA Throwable类的子类:Error类与Exception类;
2.JAVA 异常的抛出,捕捉与处理;
3.异常类常用方法的使用;
4.JAVA异常throw 和throws语句的使用;
【实验内容及步骤】
1.上机验证题
1.阅读下面的程序,在理解的基础上,结合运行效果示例,把程序补充完整并运行程序:【示例】
编写使用try…catch 语句处理异常的程序文件LX9_1.java,源代码如下。
public class LX9_4 {
static void throwProcess() {
try {
____________ new NullPointerException("空指针异常");
}
catch (NullPointerException e) {
System.out.println("\n 在throwProcess 方法中捕获一个"+e.getMessage());
____________;
}
}
public static void main(String args[]) {
try {
throwProcess();
}
catch (NullPointerException e) {
System.out.println("再次捕获:"+e);
}
}
}
[程序清单]
public class LX9_1 {
static void throwProcess() {
try {
throw new NullPointerException("空指针异常");
}
catch (NullPointerException e) {
System.out.println("\n 在 throwProcess 方法中捕获一个"+e.getMessage()); throw e;
}
}
public static void main(String args[]) {
try {
throwProcess();
}
catch (NullPointerException e) {
System.out.println("再次捕获:"+e);
}
}
}
[程序运行过程]
2. 运行以下程序,并理解程序运行的结果?[程序清单]
import java.io.*;
public class ExceptionTest{
public static void main(String args[]) {
for(int i = 0; i < 4;i++) {
int k;
try {
switch( i ) {
case 0: //divided by zero
int zero = 0;
k = 911 / zero;
break;
case 1: //null pointer
int b[ ] = null;
k = b[0];
break;
case 2: //array index out of bound
int c[ ] = new int[2];
k = c[9];
break;
case 3: //string index out of bound
char ch = "abc".charAt(99);
break;
}
}catch(Exception e) {
System.out.println("\nTestcase #" + i + "\n");
System.out.println(e);
}
}
}
}
[程序运行结果(截图)]
3. 运行以下程序,并理解程序运行的结果。
import java.io.*;
public class TryTest{
public TryTest(){
try{
int a[] = new int[2];
a[4] = 3;
System.out.println("After handling exception return here?"); }catch(IndexOutOfBoundsException e){
System.err.println("exception msg:" + e.getMessage()); System.err.println("exception string:" + e.toString());
e.printStackTrace();
}finally{
System.out.println("-------------------");
System.out.println("finally");
}
System.out.println("No exception?");
}
public static void main(String args[]){
new TryTest();
}
}
2.编程拓展题
1.(1)理解并运行以下程序(截图)。见FLASH正文图4-37
class Arithmeticexception
{ public static void main(String[] args) throws ArithmeticException,ArithmeticException
{ int a;
a = 5 / 0; //将引发除零异常
int b[]=new int[2];
b[2]=5; //可能引发数组越界异常
}
}
(2)参考以上程序,编写一个自定义异常类,并编写基于该异常类的测试类。[程序清单]
class MyFirstException extends Exception