• Java异常及处理方式


    异常概述

    思考:当代码出现了问题,程序是如何体现的?

    	异常就是用来描述代码中出现的问题。
    	异常:就是程序出现了不正常的情况。程序在执行过程中,出现的非正常的情况。
    	最终会导致 JVM 的非正常停止。
    	注意:语法错误不算在异常体系中。
    
    • 1
    • 2
    • 3
    • 4

    异常体系

    在这里插入图片描述

    编译时异常和运行时异常

    在这里插入图片描述简单来说:编译时异常就是在编译的时候出现的异常,运行时异常就是在运行的时候出现的异常。

    JVM的默认处理方案

     如果程序出现了问题,我们没有做任何处理,最终 JVM会默认做处理。
     1.JVM 会把异常的名称,异常原因及异常出现的位置等信息输出在控制台。
     2.程序停止运行。
    
    • 1
    • 2
    • 3

    小结

    	1.异常就是程序出现不正常的的情况。
    	2.异常的两类?
    			编译时异常、运行时异常
    	3.虚拟机默认处理异常的方式?
    				将异常信息以红色字体打印在控制台,结束程序运行。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    异常处理方式

    异常处理方式——throws

    格式:

    throws 异常类名;
    
    • 1
    注意:这个格式是写在方法的定义处,表示声明一个异常。
    
    编译时异常因为在编译时就会检查,所以必须要写在方法后边进行显示说明。
    运行时异常因为在运行时才会发生,所以在方法后边可以不写。
    
    • 1
    • 2
    • 3
    • 4

    抛出对象 ——throw

    思考:以前出现了异常,虚拟机会帮我们创建一个异常,抛给调用者。
    但是如果我们需要自己手动创建一个异常对象该如何写?

    格式:
    
    • 1
    throw new 异常();
    
    • 1
    注意:这个格式是在方法内,表示当前代码手动抛出了一个异常,下面的代码不用再
    执行了。
    
    • 1
    • 2

    throws 和 throw 的区别

    throwsthrow
    用在方法声明后边,跟的是异常类名用在方法体内,跟的是异常对象名
    表示声明异常,调用该方法有可能会出现这样的异常表示手动抛出异常对象,由方法体内的语句处理

    抛出处理异常的意义

      1.在方法中,当传递的参数有误,没有继续进行下去的意义了,则采取抛出处理,
        表示让该方法结束运行。
      2.告诉调用者方法中出现了问题。
    
    • 1
    • 2
    • 3

    异常处理方式——try…catch…

     格式:
    
    • 1
    try {
    可能出现异常的代码;
    }catch(异常类名 变量名) {
    异常处理的代码;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    好处:可以让程序继续往下执行。

    注意:

    如果 try 中没有遇到问题,怎么执行?

    	程序正常执行。
    
    • 1

    如果 try 中遇到了问题,那么 try 下面的代码还会执行吗?

      会正常执行。
    
    • 1

    如果出现的问题没有被捕获,那么程序如何运行?

       程序会将异常继续向上抛给调用者,直到抛给虚拟机,虚拟机进行默认处理。
    
    • 1

    同时出现多个异常怎么处理?

        定义多个 catch 语句。顶级异常父类必须放在子类的最底下。
    
    • 1

    Throwable 的成员方法

    方法名说明
    public String getMessage()返回 throwable 的详细信息字符串
    public String toString()返回此可抛出的简短描述
    public void printStackTrace()把异常的错误信息输出在控制台(字体加红)但下面的代码可以正常执行

    两种处理异常方式的小结

    抛出 throw throws

        1.在方法中,当传递的参数有误,没有继续运行下去的意义了,则采取抛出处理,
          表示让该方法结束运行。
        2.告诉调用者出现了问题。
    
    • 1
    • 2
    • 3

    捕获 try…catch

    	捕获:能让代码继续往下运行。
    
    • 1

    自定义异常

    步骤

       1.定义异常类
       2.写继承关系
       3.空参构造
       4.有参构造
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    自定义异常存在的意义

    	就是为了让控制台的报错信息更加的见名知意。
    
    • 1

    小结

    	1.为什么要学习异常?
    			因为我们要处理代码中出现的问题。
    	2.异常的处理方式:抛出和捕获
    			抛出的意义:让方法停止并告诉调用者这里出现了问题。
    			捕获的意义:让程序可以继续往下执行。
    	3.自定义异常的意义:让程序的提示报错更加的见名知意。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    ubantu 安装openssh
    谈谈 PolarDB-X 在读写分离场景的实践
    Nginx学习笔记11——防盗链与http的referer
    猿创征文|工具百宝箱-代码编辑器-版本控制工具-终端神器-项目与事务跟踪工具-SFTP客户端
    算法day29|491,46,47
    ajax 学习记录
    uniapp访问的路径去掉 # ,访问出现404
    python——xlrd库使用
    Azkaban (一) --------- Azkaban 概论
    11 函数的极值和最大最小值
  • 原文地址:https://blog.csdn.net/hihielite/article/details/126808908