_JAVA实验三
重庆大学
学生实验报告
实验课程名称J2EE及JAVA程序设计
开课实验室DS1502
学院软件年级专业班
学生姓名学号
开课时间至学年第学期
总成绩
教师签名
软件学院制
《J2EE及JAVA程序设计》实验报告
开课实验室:2012年6月4日
学院
软件学院
年级、专业、班
姓名
成绩
课程
名称
J2EE及JAVA程序设计
实验项目
名称
System.out.println("\n在mathod中抛出一个异常");
throw new IllegalAccessException();
}
public static void main(String args[]) {
try {
methodA();
}
catch (IllegalAccessException e) {
7.创建自定义的异常类
三、环境要求
已安装NetBeans IDE。
四、实验步骤
1.异常类型匹配编程
(1)程序功能:
在程序中主动产生一个ArithmeticException类型被0除的异常,并用catch语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage给出异常的具体类型并显示出来。
程序Exp5_5中的methodA方法中使用throws子句抛出异常,在main方法中捕获处理异常。
(2)编写源程序。
示例程序源代码:
import java.io.*;
public class EXP5_5{
static void methodA() throws IllegalAccessException {
3.包含多个catch子句的异常处理编程
(1)程序功能:
在try子句中设计两个可能出现的异常:一个是ArithmeticException异常,当a为0时会发生异常;另外一个是IndexOutOfBoundsException的异常,因为数组c的长度为1,因此给c[1]赋值是错误的。通过两个catch子句分别来捕获异常。
methodB();
}
}
}
(3)编译并运行程序,观察程序打印输出的信息。
(4)通过IDE的逐步调试(Step Debug)的功能,逐句调试执行程序,同时观察IDE输出窗口的程序打印输出信息。
7.创建自定义的异常类
(1)程序功能
通过继承Exception异常类创建一个自定义异常类MyException,然后再创建一个主类EXP5_7使用自定义异常类MyException。
(3)编译并运行程序,观察程序打印输出的信息。
(4)通过IDE的逐步调试(Step Debug)的功能,逐句调试执行程序,同时观察IDE输出窗口的程序打印输出信息。
(5)试着怎样执行程序可使得程序不抛出ArithmeticException异常。
4.使用throw子句抛出异常
(1)程序功能:
在上面的实验中,可以发现,异常对象是Java运行时由系统抛出的。抛出异常也可以通过使用throw语句实现。throw是Java语言的关键字,用来告知编译器此处要发生一个异常。throw后面要跟一个新创建的异常类对象,用于指出异常的名称和类型。
System.out.println("异常是:"+e.getMessage());
}
finally {
System.out.println("finally语句被执行");
}
}
}
(3)编译并运行程序,观察程序打印输出的信息。
(4)通过IDE的逐步调试(Step Debug)的功能,逐句调试执行程序,同时观察IDE输出窗口的程序打印输出信息。
System.out.println("异常是:"+e.getMessage());
}
finally {
System.out.println("finally语句被执行");
}
}
}
(3)编译并运行程序,观察程序打印输出的信息。
2.异常类型不匹配编程
(1)程序功能:
EXP5_2程序试图捕获一个异常类为IndexOutOfBoundsException的异常,但发生的异常却是ArithmeticException类,所以,程序可以通过编译但在运行时,系统会给出异常报告:报告所发生的但没有被捕获的异常。不过在此之前,其它语句和finally语句将会被执行。
static void mathod(int a) throws MyException {
System.out.println("\t此处引用mathod ("+a+")");
if (a>10) throw new MyException(a); //主动抛出MyException
System.out.println("正常返回");
System.out.println("mathodB正常返回");
return;
}
finally {
System.out.println("执行mathodB的finally");
}
}
public static void main(String args[]) {
try {
methodA();
} catch (Exception e) {
Java异常处理与包装类
指导教师
教师评语
教师签名:
年月日
一、实验目的
1.掌握Java的异常处理机制。
2.掌握包装类的使用。
3.Java SDK的使用。
二、实验内容
1.异常类型匹配编程
2.异常类型不匹配编程
3.包含多个catch子句的异常处理编程
4.使用throw子句抛出异常
5.使用throws子句
6.使用finally子句
五、实验过程原始记录(数据、图表、计算等)
1.异常类型匹配编程
2.异常类型不匹配编程
3.包含多个catch子句的异常处理编程
4.使用throw子句抛出异常
5.使用throws子句
6.使用finally子句
7.创建自定义的异常类
System.out.println("\t发生的异常为:"+e.toString());
}
System.out.println("这里可执行其它代码");
}
}
(3)编译并运行程序,观察程序打印输出的信息。
(4)通过IDE的逐步调试(Step Debug)的功能,逐句调试执行程序,同时观察IDE输出窗口的程序打印输出信息。
(4)通过IDE的逐步调试(Step Debug)的功能,逐句调试执行程序,同时观察IDE输出窗口的程序打印输出信息。
(5)修改源程序代码,通过throw语句使得程序抛出一个IndexOutOfBoundsException异常。
5.使用throws子句
(1)程序功能
throws子句一般用来表明在使用该方法时可能抛出异常但不捕获的异常。异常由系统来处理。throws语句申明抛出的异常可以是RuntimeException,也可以是自定义异常类。
System.out.println("在main中捕获异常:"+e);
}
}
}
(3)编译并运行程序,观察程序打印输出的信息。
(4)通过IDE的逐步调试(Step Debug)的功能,逐句调试执行程序,同时观察IDE输出窗口的程序打印输出信息。
(5)在main方法中调用methodA方法时,不使用try-catch语句会有什么问题?请修改源程序代码,重新编译并运行,观察IDE输出窗口会出现什么信息?
c[1]=99;
}
catch (ArithmeticException e) {
System.out.println("发生了被0除:"+e);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界:"+e);
}
}
}
(2)编写源程序。
示例程序源代码:
public class EXP5_4 {
static void throwProcess() {
try {
throw new NullPointerException("空指针异常");
}
catch (NullPointerException e) {
System.out.println("\n在throwProcess方法中捕获"+e.getMessage());
throw e;
}
}
public stat
try {
throwProcess();
}
catch (NullPointerException e) {
System.out.println("再次捕获:"+e);
}
}
}
(3)编译并运行程序,观察程序打印输出的信息。
(2)编写源程序。
示例程序源代码:
class MyException extends Exception {
private int x;
MyException(int a) {
x=a;