try...catch异常捕获printStackTrace常用的堆栈异常抛出

try...catch异常捕获
  1. 这是没用catch修补代码
        package com.catches;

        import java.util.Scanner;

        public class Demo01 {
            //需求:输入两数,求两数的商
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入第一个整数:");
                 //判断录入的数是否整数

                 if (sc.hasNextInt()){
                   int num1 = sc.nextInt();
                   if(num1!=0){
                       System.out.println("请输入第二个整数:");
                       if (sc.hasNextInt()){
                           int num2 = sc.nextInt();
                           if (num2!=0){
                               System.out.println("商:"+num1/num2);
                           }else {
                               System.out.println("输入为0的数");
                           }

                       }else {
                           System.out.println("输入不是整数");
                       }
                   }else {
                       System.out.println("输入为0的数");
                   }

                 }else {
                     System.out.println("输入不是整数");
                 }


            }
        }

  1. 使用异常处理
        package com.catches;

        import java.util.Scanner;

        public class Demo02 {
            public static void main(String[] args) {
                try{Scanner sc = new Scanner(System.in);
                    System.out.println("别怀疑,输入两个数:");
                int num1 = sc.nextInt();
                int num2 = sc.nextInt();
                System.out.println("输入两个数的商是:"+num1/num2);
            }catch(Exception ex){
                    //输出异常产生的包名,错误原因;没有行号
                    //System.out.println(ex);
                    //输出异常的错误原因;没有行号
                    //System.out.println(ex.getMessage());
                    //显示异常描述对应的字符串,如果没有就为null
                    //System.out.println(ex.getCause());
                    //这里最常用
                    //System.out.println(ex.fillInStackTrace());
                    //打印堆栈异常信息;后续继续执行
                    ex.printStackTrace();
                    //这里是抛出异常,后续代码不执行
                    //throw(ex);
                    System.out.println("1111111111");
                }
            }
        }

posted @ 2022-04-08 16:21  爱豆技术部  阅读(333)  评论(0)    收藏  举报