美文网首页Java基础
Java 常用工具类--Java异常

Java 常用工具类--Java异常

作者: 磊_5d71 | 来源:发表于2018-09-12 15:10 被阅读0次

    处理程序运行阶段的错误,不是编译阶段。


    image.png

    异常处理分类

    • 抛出异常
    • 捕获异常


      image.png
    package com.alan.test;
    
    import java.util.Scanner;
    
    public class TryDemoOne {
    
        public static void main(String[] args) {
            /*
            // 定义两个整数,输出两数之商
            
            int one = 12;
            int two = 2;
            22
            System.out.println("one和two的商:"+(one/two));
            */
            
            // 定义两个整数,接收用户的键盘输入,之后输出两数之商
            
            Scanner sc = new Scanner(System.in);
            System.out.println("=====运算开始=====");
            try {
                System.out.print("请输入第一个整数one:");
                int one = sc.nextInt();
                System.out.print("请输入第二个整数one:");
                int two = sc.nextInt();
                System.out.println("one和two的商:"+(one/two));
            //catch块捕获异常后,程序会继续向下执行。如果不捕获异常,接下来的程序都无法执行
            }catch(Exception e) {                           
                System.out.println("程序出错了~~");
                e.printStackTrace();
            }finally {
                System.out.println("=====运算结束=====");
            }
    
        }
    
    }
    

    throw与throws

    package com.alan.test;
    
    import java.util.Scanner;
    
    public class TryDemoThree {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                testAge2();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
        //描述酒店入住规则:年龄小于18或者大于80,必须有亲友陪同
        /*
         * throw抛出异常对象的处理方案
         * 1、通过try catch 包含throw语句,自己抛出异常,自己捕获处理。
         * 2、通过throws在方法声明出抛出异常类型--谁调用谁处理--调用者可以自己处理,也可以继续上抛。
         * */
        public static void testAge() {
                try {       
                    System.out.println("请输入年龄:");
                    Scanner sc = new Scanner(System.in);
                    int age = sc.nextInt();
                    if(age<18 || age>80) {
                        throw new Exception("年龄小于18或者大于80,必须有亲友陪同");
                    }else {
                        System.out.println("欢迎光临本酒店~~~");
                    }
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
            public static void testAge2() throws Exception {
                    System.out.println("请输入年龄:");
                    Scanner sc = new Scanner(System.in);
                    int age = sc.nextInt();
                    if(age<18 || age>80) {
                        throw new Exception("年龄小于18或者大于80,必须有亲友陪同");
                    }else {
                        System.out.println("欢迎光临本酒店~~~");
                    }
            }
            
        
    }
    

    throw

    package com.alan.test;
    
    import java.util.Scanner;
    
    public class TryDemoThree {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                testAge2();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
        //描述酒店入住规则:年龄小于18或者大于80,必须有亲友陪同
        /*
         * throw抛出异常对象的处理方案
         * 1、通过try catch 包含throw语句,自己抛出异常,自己捕获处理。
         * 2、通过throws在方法声明出抛出异常类型--谁调用谁处理--调用者可以自己处理,也可以继续上抛。
         * */
        public static void testAge() {
                try {       
                    System.out.println("请输入年龄:");
                    Scanner sc = new Scanner(System.in);
                    int age = sc.nextInt();
                    if(age<18 || age>80) {
                        throw new Exception("年龄小于18或者大于80,必须有亲友陪同");
                    }else {
                        System.out.println("欢迎光临本酒店~~~");
                    }
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
            public static void testAge2() throws Exception {
                    System.out.println("请输入年龄:");
                    Scanner sc = new Scanner(System.in);
                    int age = sc.nextInt();
                    if(age<18 || age>80) {
                        throw new Exception("年龄小于18或者大于80,必须有亲友陪同");
                    }else {
                        System.out.println("欢迎光临本酒店~~~");
                    }
            }
    }
    

    自定义异常

    package com.alan.test;
    
    public class HotelAgeException extends Exception {
        
        public HotelAgeException() {
            super("年龄小于18或者大于80,必须有亲友陪同");
        }
    }
    
    package com.alan.test;
    
    import java.util.Scanner;
    
    public class TryDemoThree {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                testAge2();
            } catch (HotelAgeException e) {
                System.out.println(e.getMessage());
                System.out.println("酒店前台工作人员不允许办理入住登记");
            }
        }
        
        
        //描述酒店入住规则:年龄小于18或者大于80,必须有亲友陪同
        /*
         * throw抛出异常对象的处理方案
         * 1、通过try catch 包含throw语句,自己抛出异常,自己捕获处理。
         * 2、通过throws在方法声明出抛出异常类型--谁调用谁处理--调用者可以自己处理,也可以继续上抛。
         * */
        public static void testAge() {
                try {       
                    System.out.println("请输入年龄:");
                    Scanner sc = new Scanner(System.in);
                    int age = sc.nextInt();
                    if(age<18 || age>80) {
                        throw new Exception("年龄小于18或者大于80,必须有亲友陪同");
                    }else {
                        System.out.println("欢迎光临本酒店~~~");
                    }
                }catch (Exception e) {
                    e.printStackTrace();
                }
            }
            public static void testAge2() throws HotelAgeException    {
                    System.out.println("请输入年龄:");
                    Scanner sc = new Scanner(System.in);
                    int age = sc.nextInt();
                    if(age<18 || age>80) {
                        throw new HotelAgeException();
                    }else {
                        System.out.println("欢迎光临本酒店~~~");
                    }
            }
            
        
    }
    

    相关文章

      网友评论

        本文标题:Java 常用工具类--Java异常

        本文链接:https://www.haomeiwen.com/subject/zrhhgftx.html