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

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

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

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

package bbb;

import java.util.Scanner;

public class ExceptionTest {
    public static void main(String[] args){
        int a,b,c = 0;
        Scanner sc=new Scanner(System.in);
        a=sc.nextInt();
        b=sc.nextInt();
        try{
            c=a/b;
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
            System.out.println("被除数不能为0!");
        }
        System.out.println(c);
    }
}

运行结果:

2 0
java.lang.ArithmeticException: / by zero
 at bbb.ExceptionTest.main(ExceptionTest.java:12)
被除数不能为0!
0

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

package bbb;
import java.util.*;
public class aaa {
    final static double PI=3.14f;
    public static void main(String[] args) {
        double r = 0,s;
        Scanner sc=new Scanner(System.in);
        try{
            r=sc.nextDouble();
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
            System.out.println("输入double型数据!");
        }
        s=r*r*PI;
        System.out.println(s);
    }

}

运行结果:
sad
输入double型数据!
java.util.InputMismatchException
 at java.util.Scanner.throwFor(Unknown Source)
 at java.util.Scanner.next(Unknown Source)
 at java.util.Scanner.nextDouble(Unknown Source)
 at bbb.aaa.main(aaa.java:9)
0.0

 

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

package bbb;


public class MyException extends Exception {
    public MyException(String ErrorMessage){            
        super(ErrorMessage);
    }
}

 

package bbb;
import java.util.*;
public class id {
    static int avg(int num)throws MyException{
        if(num!=18){
            throw new MyException("IllegalArgumentException");
        }
        return(num);
    }
    public static void main(String[] args) {
        String ID;
        Scanner sc=new Scanner(System.in);
        ID=sc.next();
        int l=ID.length();
        try{
            int result=avg(l);
        }catch(MyException e){
            e.printStackTrace();
        }
    }
}

运行结果:

123456
bbb.MyException: IllegalArgumentException
 at bbb.id.avg(id.java:6)
 at bbb.id.main(id.java:16)