Java初级测试题八-异常处理(3/3)

1.编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常,而且无论在哪种情况下,“总是被执行”这句话都会在控制台输出。
在命令行输入不同的参数时能输出如下各种结果:

1.1 在命令行输入 java A

总是被执行  Exception in thread "main" 
java.lang.ArrayIndexOutofBoundsException at A.main(A.java:7)  

1.2 在命令行输入 java A 1 2

0   总是被执行

1.3 在命令行输入 java A 1 3a

java.lang.NumberFormatException: 3a  at 
java.lang.Integer.parseInt(Integer.java:435)    at 
java.lang.Integer.parseInt(Integer.java:476)   at A.main(A.java:8)  
 总是被执行 

1.4 在命令行输入 java A 1 0

java.lang.ArithmeticException: / by zero at A.main(A.java:9)  总是被执行 
public class Topic1 {

    /*
     * 1、编写应用程序,从命令行传入两个整型数作为除数和被除数。
     *  要求程序中捕获NumberFormatException
     * 异常和ArithmeticException 异常,
     * 而且无论在哪种情况下,“总是被执行”这句话都会在控制台输出。
     */
    public static void main(String[] args) {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("please enter the first number");
        String string1 = scanner.next();
        System.out.println("please enter the second number");
        String string2 = scanner.next();
        int num1,num2;
        try {
            num1 = Integer.getInteger(string1);
            num2 = Integer.getInteger(string2);
            System.out.println(num1 / num2);
        } catch (NumberFormatException | ArithmeticException e) {
            e.printStackTrace();
        }finally {
            System.out.println("总是被执行");
        }
    }
}
  1. 编写一个检查给定的数字的数据类型是否为byte的程序,如果此数字超出byte数据类型表示的数的范围,则引发用户自定义的异常ByteSizeException,并显示相应的错误信息(知识点:自定义异常)

步骤1:创建用户自定义异常类ByteSizeException

步骤2:在main方法中编写逻辑代码

步骤3:运行并测试

效果如图:

package 课后作业;

public class ByteSizeException extends Exception {

    /*
     * 2、编写一个检查给定的数字的数据类型是否为byte的程序,
     * 如果此数字超出byte数据类型表示的数的范围,
     * 则引发用户自定义的异常ByteSizeException,
     * 并显示相应的错误信息(知识点:自定义异常) [选作题]
     * 步骤1:创建用户自定义异常类ByteSizeException 
     * 步骤2:在main方法中编写逻辑代码 
     * 步骤3:运行并测试 效果如图:
     */
    public ByteSizeException() {
        super("此数字超出byte数据类型表示范围");
    }
    public static void foo(int num) {//异常两种处理方式  积极处理  消极处理
        if(num < - 128  && num > 127)
        {
            try {
                throw new ByteSizeException();
            } catch (ByteSizeException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        foo(129);
    }
}
  1. 编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常,并在适当时候触发异常,然后编写一个程序捕获该异常。
public class NullPointerException extends Exception{
    /*
     * 3. 编写一个方法,比较两个字符串。假如其中一个字符串为空,
     * 会产生NullPointerException异常,在方法声明中通告该异常,
     * 并在适当时候触发异常, 然后编写一个程序捕获该异常。
     */
    public static void testString(String string1,String string2) {
        if(string1 == null || string2 == null)
        {
            try {
                throw new NullPointerException();
            } catch (NullPointerException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        String string1 = "aaa";
        String string2 = null;
        testString(string1, string2);
    }
}

分割线


博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。

你可能感兴趣的:(Java初级测试题八-异常处理(3/3))