课堂练习1:
写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
import java.util.*;
public class sanjiao {
public static void main(String[] args) {
System.out.println("请输入三角形三边长:");
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
int z[] = {a,b,c};
Arrays.sort(z);
try{
triangle(z);
}
catch(IllegalArgumentException e) {
e.printStackTrace();
}
}
static void triangle(int z[]) {
if(z[0]+z[1]>z[2]&&z[2]-z[1]<z[0])
System.out.println("可构成三角形,边长分别为:"+z[0]+","+z[1]+","+z[2]);
else throw new IllegalArgumentException("a,b,c “不能构成三角形”");
}
}
课堂练习2:
从命令行输入5个整数,放入一整型数组,然后打印输出。要求:
如果输入数据不为整数,要捕获输入不匹配异常InputMismatchException,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常ArrayIndexOutOfBoundsException,显示“请输入5个整数”。
无论是否发生异常,都输出“感谢使用本程序!”
import java.util.*;
public class int异常 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int z[] = new int[5];
try {
for(int i = 0;i<5;i++) {
z[i] = in.nextInt();
}
System.out.println("整数为:");
for(int zz:z) {
System.out.print(zz+" ");
}
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("请输入5个整数");
}
catch(InputMismatchException e) {
System.out.println("请输入整数");
}
finally {
System.out.println("\n感谢使用本程序!");
}
}