一、实验目的
1.编写try-catch块处理异常
二、实验内容
1. 【NumberFormatException异常】编写一个程序,提示用户输入两个整数,然后显示它们的和。用户输入错误时提示用户重新输入。
2. 【ArrayIndexOutOfBoundsException异常】编写一个程序,创建一个由100个随机选取的整数构成的数组;提示用户输入数组下标,然后显示元素的值,如果指定的下标越界,显示消息out of bounds。
3.【OutOfMemoryError错误】编写一个程序,它能导致JVM抛出一个OutOfMemoryError,然后捕获并处理这个错误。
三、实验要求:
要求每个学生独立完成实验任务。
四、实验报告
1. 实验结果与分析
(1)NumberFormatException异常
A) 实验运行情况
首先根据提示输入两个数,每个数占一行
回车,如果输入的格式正确,回复结果
如果输入格式错误,提示输入错误并重新输入,直至两个数都输入正确
B) 结果分析
NumberFormatException异常在当字符串转换成整型而字符串格式错误时出现,是数字格式匹配的失误
因此首先设置两个String类型实例,代表两个字符串
String num1,num2;
这两个实例在输入后转换成整型时可能会抛出NumberFormatException异常
例如如果输入的内容无法转换则就会返回这个异常
(附测试代码)
package exp6;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
String string = new String();
Scanner input = new Scanner(System.in);
System.out.println("输入数字");
string = input.nextLine();
int num = Integer.parseInt(string);
System.out.println(num);
}
}
因此设置do-while语句,内部嵌套try-catch语句实现直到正确输入时才返回结果的程序,在try块中按照测试代码的方法设置可能异常语句,即可完成实验测试。
try{
System.out.println("请输入两个数:");
num1 = input.nextLine();
num2 = input.nextLine();
int sum = Integer.parseInt(num1.trim())+ Integer.parseInt(num2.trim());
System.out.println(num1 + " + "+ num2 +" = " + sum);
judge = false;
}
catch(NumberFormatException ex){
System.out.println("请输入两个有意义的数");
}
(2)ArrayIndexOutOfBoundsException异常
A) 实验运行情况
首先根据提示输入一个大于等于0,小于100的数组下标值
如果输入正确,返回该值下面的随机整数(1-500)