课堂练习1:
写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
a<b<c
两边之和大于第三边:a+b>c
两边之差小于第三边:c-a<a
代码如下:
package tra;
public class triangle {
void tri(int a,int b,int c) throws IllegalArgumentException{
if(( a+b > c) && (a+c >b) && (b+c > a)) {
System.out.println("三角形的三边分别是:"+a+" "+b+" "+c);
}else {
throw new IllegalArgumentException("非法数据");
}
}
}
package tra;
import java.util.Scanner;
public class tri_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎");
Scanner a = new Scanner(System.in);
int a1 = a.nextInt();
int b1 = a.nextInt();
int c1 = a.nextInt();
triangle t = new triangle();
try {
t.tri(a1,b1,c1);
}catch(IllegalArgumentException e) {
System.out.println("产生非法数据,三边不能构成三角形");
e.printStackTrace();
}
}
}
课堂练习2:
从命令行输入5个整数,放入一整型数组,然后打印输出。要求:
如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。
无论是否发生异常,都输出“感谢使用本程序!”
代码如下:package tra;
import java.util.InputMismatchException;
import java.util.Scanner;
public class int_array {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Scanner in = new Scanner(System.in);
System.out.println("请输入五个整数:");
int arr[] = new int[5];
for(int i=0;i<5;i++) {
arr[i] = in.nextInt();
}
for(int j=0;j<5;j++) {
System.out.println(arr[j]);
}
}catch(InputMismatchException e) {
System.err.println("输入不匹配,请输入整数");
e.printStackTrace();
}catch(ArrayIndexOutOfBoundsException ae) {
System.out.println("数组越界");
ae.printStackTrace();
}finally {
System.out.println("欢迎使用本程序");
}
}
}