Java第五次实训作业

1. 编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现:

²  在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用户输入;

²  在catch语句块中,捕获被0除所产生的异常,并输出异常信息;

在finally语句块中,输出一条语句。

package shixun;

import java.util.Scanner;

public class ExceptionTest {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner input = new Scanner(System.in);
        System.out.println("请输入除数:");
        int op1 = input.nextInt();
        System.out.println("请输入被除数:");
        int op2 = input.nextInt();
        int result = 0;
        try {
            result = op1 / op2;
        } catch (ArithmeticException e) {
            e.printStackTrace();
        } finally {
            System.out.println("异常处理");
        }
        System.out.println(result);

    }

}

2. 编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。

package yic;

import java.util.Scanner;

public class shiyan1 {

    @SuppressWarnings("resource")
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double r;
        Scanner s = new Scanner(System.in);
        while(true){
            try{
            r = Double.parseDouble(s.next());
            if(r<0)
                throw new NegativeException();
            else if(r<1.0||r>100.0)
                throw new NumberRangeException();
            else{
                System.out.println("面积是"+3.14*r*r);
                break;
            }
            }catch(NumberFormatException e){
                System.out.println("非数值异常");
            }catch(NegativeException e){
                System.out.println("负数异常");
            }catch(NumberRangeException e){
                System.out.println("越界异常");
            }
        }
    }
}
class NegativeException extends Exception{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public NegativeException(){
        super();
    }
    public NegativeException(String msg){
        super(msg);
    }
    public NegativeException(String msg, Throwable cause){
        super(msg,cause);
    }
    public NegativeException(Throwable cause){
        super(cause);
    }
}
class NumberRangeException extends Exception{
    public NumberRangeException(){
        super();
    }
    public NumberRangeException(String msg){
        super(msg);
    }
    public NumberRangeException(String msg, Throwable cause){
        super(msg,cause);
    }
    public NumberRangeException(Throwable cause){
        super(cause);
    }
}

3.为类的属性“身份证号码.id”设置值,当给的的值长度为18时,赋值给id,当值长度不是18时,抛出IllegalArgumentException异常,然后捕获和处理异常,编写程序实现以上功能。

package yic;

public class shiyan2 {
    private  String  id;
  public void setid(String id) {
      if(id.length()==18)
          this.id=id;
      else 
          throw new IllegalArgumentException("参数长度应为18!");
  }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        shiyan2 t =new shiyan2();
        try {
            t.setid("0123456789123456789");
        }catch(IllegalArgumentException ie) {
            System.out.println(ie.getMessage());
        }finally {
            System.out.println("结束");
        }
        
    }

}

 

posted @ 2019-06-10 17:12  本山叔叔  阅读(199)  评论(0编辑  收藏  举报