• 【JavaSE】JAVA中的异常处理


      👉引言💎

    在这里插入图片描述

    铭记于心
    🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉

    在这里插入图片描述


    JAVA中的异常

    java中的异常处理类似于C++,有try catch以及throws两种方式

    请添加图片描述

    请添加图片描述

    请添加图片描述

    jvm对异常的处理

    使用 throws 声明抛出异常的思路是,当前方法不知道如何处理这种类型的异常,该异常应该由向上一级的调用者处理;

    如果 main 方法也不知道如何处理这种类型的异常,也可以使用 throws 声明抛出异常,该异常将交给 JVM 处理。

    JVM 对异常的处理方法是,打印异常的跟踪栈信息,并中止程序运行,这就是前面程序在遇到异常后自动结束的原因

    • public void 方法() throws 异常类名

    请添加图片描述

    这个throws格式是跟在方法的括号后面的

    编译时异常必须要进行处理,两种处理方案:try…catch …或者 throws,如果采用 throws 这种方案,将来谁调用谁处理

    运行时异常可以不处理,出现问题后,需要我们回来修改代码

    请添加图片描述

    方法内语句执行到throw 即停止,将异常抛出,然后程序对异常进行处理

    class t extends Exception {}//定义异常类
    
    public class hello {
        public static void main(String[] args) throws t {
        test();//调用该方法抛出异常给JVM虚拟机,JVM终止程序并进行处理
        }  /*等价于try {
                test();
            } catch (com.itheima.t t) {
                t.printStackTrace();
            }*/
        public  static  void test() throws t {
        throw new t();//异常抛出方法
        }
    }           由于异常类中并没有设置打印的异常信息,所以这里没有异常信息
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    请添加图片描述

    class t extends Exception {}//定义异常类
    
    public class hello {
        public static void main(String[] args)  {
         try {
                test();
            } catch (com.itheima.t t) {
                System.out.println("也可以这样处理,而用try catch进行处理的方法时处理完都可以继续执行程序");
            }
            System.out.println("比如说这样就继续执行了异常处理语句后的语句");
        }  
        public  static  void test() throws t {
        throw new t();//异常抛出方法
        }
    }  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    请添加图片描述

    自定义异常

    请添加图片描述
    请添加图片描述

    也可以这种方式

    class Teacher {
    
        void checkScore(int score)  {
            try{
                if (score < 0 || score > 100) {
                    throw new ScoreException("你给的分数有误,分数应该在0-100之间");
                } else {
                    System.out.println("成绩正常");
                }
            } catch (ScoreException a)
            {
                a.printStackTrace();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    🌹写在最后💖
    路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹在这里插入图片描述

  • 相关阅读:
    4、MFC:菜单栏、工具栏与状态栏
    汽车零部件行业智能采购协同系统平台开发,提升企业管理效益
    51nod 22.7暑假冲刺联训CSP-J 第一场II D题
    第7章 docker存储管理
    腾讯云发布三款云原生新品 持续加码云原生布局
    selenium爬取图片
    数据在内存中的存储
    stable diffusion 零基础入门教程
    Java高级技术之Gradle
    【展讯】安卓修改音量等级曲线
  • 原文地址:https://blog.csdn.net/runofsun/article/details/125937642