11.1第十周java作业

来源:互联网 发布:韩国网络女主播李秀彬 编辑:程序博客网 时间:2024/05/21 07:51

上机练习题——异常处理

课堂练习1:

写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

代码如下:

 Triangle类:

public class Triangle {
int a,b,c;
void judge(int a,int b,int c)  
    {  try{
        if((a+b>c)&&(b+c>a)&&(a+c>b))  
        {  
            System.out.printf("三角形的三边是%d,%d,%d\n",a,b,c);  
        }  
        else  
        {  
            throw new IllegalArgumentException("abc不能构成三角形。");  
        }  }
        catch(IllegalArgumentException e)
        {
        e.getMessage();
        e.printStackTrace(); 
        }
    } 
}

测试类:

import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Triangle s=new Triangle();
Scanner in=new Scanner(System.in);
System.out.println("请输入三角形的三边长:");
int a,b,c;
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
s.judge(a, b, c);
}
}

测试结果:



课堂练习2:

从命令行输入5个整数,放入一整型数组,然后打印输出。要求:

如果输入数据不为整数,要捕获输入不匹配异常,显示“请输入整数”;如果输入数据多余5个,捕获数组越界异常,显示“请输入5个整数”。

无论是否发生异常,都输出“感谢使用本程序!”

 package j1101;
import java.util.*;
public class TestArrayException {
public static void main(String[] args) {
int a[] = new int[5];
System.out.println("请输入5个数:");
System.out.println("最后输入一个非数字结束输入操作。");
Scanner in = new Scanner(System.in);
try{
int i = 0;
while(in.hasNextDouble()){     
a[i] = in.nextInt();
i++;
}
if(i<5)
throw new ArrayIndexOutOfBoundsException();
for(int j=0;j<5;j++)
System.out.print(a[j]+"  ");
System.out.println();
}catch(InputMismatchException e1){
System.err.println("请输入整数作为数组元素!");
e1.printStackTrace();
}catch(ArrayIndexOutOfBoundsException e2){
System.err.println("请输入5个数!");
e2.printStackTrace();
}finally{
System.out.print("感谢使用本程序!");
}

}

}

测试结果:


数字异常:


多于五个数:


原创粉丝点击