美文网首页
day09_面向对象_异常

day09_面向对象_异常

作者: 简单的书写点 | 来源:发表于2018-11-14 23:37 被阅读0次

    处理异常的两种方式:
    try...catch....finally

    throw //抛出
    try{
    可能出现问题的代码;
    }catch(异常名 变量){
    针对问题的处理;
    } finally{
    释放资源;
    }

    变形格式:
    try{
    可能出现问题的地方
    }catch(异常名 变量){
    针对问题的处理
    }

    注意:

        **异常名可以先运行一次,让虚拟机报错借此告诉你这个异常叫什么**
        A:try 里面的代码越少越好
        B:catch里面必须有内容,哪怕只是一个提示
    

    A:当一个异常的时候
    B:当两个异常的时候:每个异常都try...catch
    try...catch....catch
    注意:一旦try里面出现问题,就会在这里把问题抛出并和catch里面的问题匹配,有匹配就执行catch里面的语句,然后结束try...catch,继续执行下去。(try里面,出问题的语句之后的语句都不再执行)


    throw的方式处理异常

    有些时候,我们是可以对异常进行处理的,但是又有些时候,我们根本就没有权限区处理某个异常。
    或者说,我处理不了,就不处理了
    为了解决问题,Java针对这种情况,就提供了另一种方法:抛出

    注意:尽量不要再main方法上抛出异常
    如果出现了异常情况,我们可以把异常抛出,抛出的应该是异常的对象
    例如 throw new ArithmeticException();

    原则:

    如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throw
    区别:
    后续程序需要运行,就用try,否则就用throw


    finally特点

    finally:被finally控制的语句一定会执行
    注意:如果在执行到finally之前jvm退出了,,finally就不能执行了,如System.exit();

    自定义异常

    自定义的异常,是为了弥补java中考虑不到的异常,我们需要自定义异常
    我们的自定义异常,必须用如下两个方式其中之一
    A:继承Exception
    B:继承RuntimeException
    例如:
    我现在要自定义一个异常,我输入的数字必须在0-100之前,否则报错

    public class MyException extends Exception{
      public MyException(){}           //空参构造器
      public MyException(){           //带参构造器,参数是错误的具体信息
        super(message);
      }
    }
    

    当我调用测试类的时候,判断输入值是否在范围之内,如果超出范围,则执行:throw new MyException("超出设定范围"); //这个参数就是错误详细说明
    throw抛出的是异常的对象

    相关文章

      网友评论

          本文标题:day09_面向对象_异常

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