美文网首页
Java 异常处理

Java 异常处理

作者: 啦啦啦_9a5f | 来源:发表于2018-12-19 19:18 被阅读0次

    一、异常:写代码时出现的编译或者运行的错误

    异常包含了错误的类型、原因以及位置

    异常的体系结构:

    Throwable()(最顶层)

        Error:出现的不能够处理的严重问题

        Exception:可以处理的问题

    二、异常处理

    1.jvm处理异常的方式:

    如果出现异常没有处理,jvm会帮我们处理,会把异常的类型、原因、位置显示在命令行,并且终止程序,异常后面的代码将不在执行

    2.异常处理的方式:

    (1)捕获处理

    try...catch...语句

    try{

      有可能出现问题的代码

    }catch(异常对象){

      处理异常

    }

    执行顺序:首先执行try语句,如果发现异常,异常下面的代码不在执行,直接跳入catch语句中

    try{
      System.out.println(1);
      System.out.println(2/i);
      System.out.println(2);
    }catch(异常对象){
      System.out.println("0不能为除数");
    }
    System.out.println(3);
    如果i = 0,输出 1
                              0不能为除数
                              3
    如果i!=0,输出 1
                            2
                            3

    (2)抛出异常

    当不想处理异常或没有能力处理时,可以选择抛出异常,谁调用方法谁处理异常,使用关键字throws在方法的声明处抛出异常

    jvm调用主方法时会处理抛出的异常

    3.如何处理多个异常

    (1)可以使用多个try...catch...语句

    (2)使用一个try和多个catch

      多个catch之间可以有父类

      平级之间没有顺序关系

      如果有父类,父类异常必须放在后面

    三、throwable

    常用的方法:;

    String getMessage():原因

    String toString():类型和原因

    void printStackTrace():类型、原因和位置

    四、finally

    组合try...catch使用,用于释放资源等收尾工作,无论try...catch语句如何执行,finally代码一定会执行

    try{

      有可能出现问题的代码

    }catch(异常对象){

      处理异常

    }finally{

      释放资源

      清理垃圾

    }

    五、异常分类:

    1.运行时期异常:RuntimeException的子类就是运行时异常,在编译时期可以选择处理或者不处理

    2.编译时期异常:是Exception的子类,非RuntimeException的子类,在编译时期必须处理

    3.(1)throws:处理异常的一种方式,把异常抛出,由调用者来处理

    (2)throw:制造异常的方式,并且结束方法

    注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws)

    public static void checkSore(int sorce){
      if(score < 0 || score > 100){
          throw new RuntimeException("考试成绩不符合要求");
      }
      System.out.println("成绩输入正确");
    }

    (3)为什么IO流要抛出异常的原因是:

    在它的构造抛出了IOException,如果调用它的构造必须抛出异常

    六、创建自己的异常

    如何自定义一个异常类:

    写一个类去继承Exceptioon或者RuntimeException,然后实现多个构造即可

    public class MyException extends RuntimeException{
      public MyException(){
            super();
        }
        public MyException(String message){
            super(message);
        }
    }

    此为运行时期异常

    相关文章

      网友评论

          本文标题:Java 异常处理

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