2020-06-23异常

作者: 智障猿 | 来源:发表于2020-06-23 17:34 被阅读0次

    异常

    • 概述:就是程序中出现了不正常的情况
    • 异常体系
    1. Error:严重错误,不能处理
    2. Exception:称为异常类,它表示程序本身可以处理的问题
      ①RuntimeException:在编译期是不检查的,出现问题后,需要我们回来修改代码。(运行时异常)
      ②非RuntimeException:编译期就必须处理的,否则程序不能通过编译,更不能正常运行。(编译异常)


      异常体系.png
    • JVM对JVM的默认处理
      ①把异常的名称,异常的原因及异常出现的位置等信息输出在控制台。
      ②程序停止执行
    • Throwable的成员方法
    方法名 说明
    public String getMessage() 返回此throwable的详细消息字符串
    public String toString() 返回此可抛出异常的简短描述
    public void printStackTrace() 把异常的错误信息输出在控制台

    异常处理

    • 方案一try...catch...
    1. 格式
    try{
      可能出现异常的代码
    }catch(异常类名 变量名){
      异常的处理代码
    }
    
    1. 执行流程
      ①程序从try里面的代码开始执行
      ②出现异常,会自动生成一个异常类对象,该异常类对象将被提交给Java运行时系统
      ③当java运行时系统接收到异常对象时,会到catch中去匹配异常类,找到后进行异常处理
      ④执行完毕之后,程序还可以继续往下执行
    • 方案二throws...
    1. 格式
    修饰词 方法名() throws 异常类名{
    
    };
    
    1. 注意
      如果使用throws这种方案,将来谁调用谁就得来处理,最终还是得使用try...catch...

    自定义异常

    • 定义格式
    public class 异常类名 extends Exception{
      public 异常类名(){}
      public 异常类名(String message){
        super(message);
      }
    }
    
    • 类的成员方法的定义
    public class Teacher {
    public void 方法名() throws 异常类名{
        ...
        throw new 异常类名()
        throw new 异常类名(参数)
        ...
    }
    }
    
    • 使用时
    Teacher  t = new Teacher();
    try{
      t.方法名() 
    }catch(异常类 对象名){
      ...
    }
    

    throws与throw的区别

    throws throw
    用在方法声明后面,跟的是异常类名 用在方法体内,跟的是new 异常类
    表示抛出异常,由该方法的调用者来处理 表示抛出异常,由方法体内的语句来处理
    表示出现异常的一种可能性,并不一定会发生这些异常 执行throw一定会抛出某种异常

    相关文章

      网友评论

        本文标题:2020-06-23异常

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