这段时间学习了Java异常处理机制(老师上课也只是粗略按照例题讲了一下,并没有特别细致地去进行分析),大概就是记住了try-catch的结构,能够帮助我们在程序运行时进行异常状况的处理,保证程序的正常进行。
例题一
封装一类 SumNumber,该类中包含一个求两个 String 类型参数表示 double 类型值,将其求和的方法,当传递实参时如果传递的数据不正确时抛出 NumberFormatException 异常并进 行处理,提示重新传递参数。封装执行主类。
这道题目就是简单的try-catch结构,抛出的是NumberFormatException 异常需要注意的是:数据类型的强制类型转换,细节性的方法可以参考https://www.cnblogs.com/entry-android/p/5513924.html,将String型数据转换成double型可以是Double.valueof(“1234”)或是Double.parseDouble(“1234”).
代码实现
主类(Main)
public class Main {
public static void main(String[] args) {
SumNumber phc1=new SumNumber();
phc1.toCatch("abcd","2345"); //传递的参数不正确,会抛出异常
}
}
功能类SumNumber
public class SumNumber {
public void toCatch(String s1,String s2){
try{
double d1=Double.valueOf(s1); //String型数据转换为double型
double d2=Double.valueOf(s2);
System.out.println("相加结果是:"+(d1+d2));
}catch(NumberFormatException e){
System.out.println("参数类型不正确,请重新传递参数!");
}
System.out.println("接下来继续进行程序……");
}
}
例题二
封装一类 RandomArray,类中包含一个显示数组元素值的方法,该方法创建一个由 100 个随机选取的 int 类型值构成的数组,根据参数指定数组的索引并显示对应的元素值,如果指定的索引越界,处理 ArrayIndexOutOfBoundsException 异常。
这道题目与第一题差不多,不过抛出的是不同的异常类,需要注意的是:随机数的生成,具体可以参考Java 产生随机数的三种方式,比较方便的还是使用Random类.
代码实现
主类Main
public class Main {
public static void main(String[] args) {
RandomArray phc2=new RandomArray();
phc2.showArraydata(120);
}
}
功能类RandomArray
import java.util.Random; //导入Random类
public class RandomArray {
public void showArraydata(int index){
Random r=new Random();
int[] array=new int[100];
for(int i=0;i<100;i++){
array[i]=r.nextInt(); //产生随机数(也可指定数的范围)
}
try{
System.out.println("数组索引"+index+"位置对应的元素值是"+array[index]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("数组索引越界,请重新传递!");
}
System.out.println("接下来继续执行程序");
}
}
Java的深入学习还有待静下心去读书、查资料、看视频,仅仅是课堂的学习是远远不够的,真正地做到融会贯通、学以致用,机会永远只会留给有准备的人.