实验十 Java异常程序设计
一、实验目的
1.了解Java异常的概念和分类
2.掌握异常的处理机制
3.掌握自定义异常的使用
二、实验硬、软件环境
Windows计算机和Eclipse软件
三、实验内容及步骤
1. 根据编号输出课程名称。按照控制台提示输入1~3之间任一个数字,程序将输出相应的课程名称,根据键盘输入进行判断。如果输入正确,输出对应课程名称。如果输入错误,给出错误提示。
实验步骤:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[] char1={"化学","英语","数学"};
System.out.println("请输入1~3之间任一个数字:");
try {
int a=sc.nextInt();
System.out.println("数字"+a+"对应的课程为"+char1[a-1]);
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("您输入的数字有误!!!");
}catch (InputMismatchException e){
System.out.println("您输入的不是数字!!!");
}
}
}
2. 创建类Number,通过类中的方法count可得到任两个100以内的整数相加的结果,并在调用该方法的主方法中使用try-catch语句捕捉可能发生的异常。提示:使用自定义异常。
实验步骤:
(1)自定义异常ShuJuException继承Exception类,并规定数据大于100为数据正常,其他数据为数据错误:
public class ShuJuException extends Exception{
public ShuJuException(){}
public ShuJuException(String s){
super(s);
}
public String panduan(int num) throws ShuJuException{
System.out.println(num);
if (num>100) {
return "数据正常。";
}else {
throw new ShuJuException("数据错误!!!");
}
}
}
(2)创建类Number,通过类中的方法count可得到任两个100以内的整数相加的结果,
import java.util.Random;
public class Number {
public int count(){
Random sc=new Random();
int num1=sc.nextInt(101);
int num2=sc.nextInt(101);
int sum=num1+num2;
return sum;
}
}
(3)创建测试类Test2,调用该方法的主方法中使用try-catch语句捕捉可能发生的异常:
public class Test2 {
public static void main(String[] args) {
Number nu=new Number();
try {
ShuJuException m=new ShuJuException();
System.out.println(m.panduan(nu.count()));
}catch (ShuJuException e){
System.out.println(e.getMessage());
}
}
}
四、实验结果及分析
实验结果
1、
2、
实验分析
通过本次实验,了解了Java异常的概念和分类,掌握了异常的处理机制以及自定义异常的使用。
Java异常是指在程序运行的过程中发生的一些异常事件(如数组下标越界、所要读取的文件不存在等)。
从Throwable直接派生出来的异常类有Exception类和Error类。Exception类分为运行时异常和非运行时异常。
异常处理机制能让程序在异常发生时,按照代码预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Java异常处理方式有try-catch-finally结构、throw和throws三种。
可以根据业务逻辑需要由人工创建并抛出异常,这样的异常称为自定义异常。