• Java中处理异常throw和throws


    1.首先我们来了解什么是异常呢?

         异常阻止当前方法或作用域继续执行的问题。

    2.处理异常

       说到处理异常,我们当然会想到 try catch finally

       在java中我们会对异常的处理有更高的认识 我们会学习 throw throws等更好的处理异常

    3.常见异常

      

    4.throw关键字:语句抛出异常   throws关键字:声明异常(方法抛出一个异常)

        01.throw   是语句抛出一个异常。

    语法:throw (异常对象);
             throw e;

        02. throws  是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)   调用者必须做出处理(捕获或继续抛出)

    语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
                public void doA(int a) throws Exception1,Exception3{......}

        03.throws可以单独使用,但throw不能, throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使 用,然后再由处理异常的方法捕获。

        04.throw语句用在方法体内,表示抛出异常,由方法体内的语句处理 
             throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理,必须做出处理(捕获或继续声明)

        05.throws主要是声明这个方法会抛出这种类型的异常,使其他地方调用它时知道要捕获这个异常,使得提醒必须做出处理。否则编译是不会通过的。
             throw是具体向外抛异常的动作,所以它是抛出一个异常实例。

    eg:

    public void dothing(int a,int b) throws Exception1,Exception3 {
               try{
                     //......
    
               }catch(Exception1 e){
                  throw e;
               }catch(Exception2 e){
                  System.out.println("自己打印提示,不抛出");
               }
               if(a!=b)
                  throw new  Exception3("自定义异常");
    }

    代码块中可能会产生3个异常,(Exception1,Exception2,Exception3)。
    如果产生Exception1异常,则捕获之后再抛出,由该方法的调用者去处理。
    如果产生Exception2异常,则该方法自己处理了(即打印出字符串:自己打印提示,不抛出)。所以该方法就不会再向外抛出Exception2异常了,void dothing() throws Exception1,Exception3 里面的Exception2也就不用写了(当然你写了也不会报错的),throws 就是声明可能抛出的错误,而Exception2 并未做出抛出操作。
    而Exception3异常是该方法的某段逻辑出错,程序员自己做了处理,在该段逻辑错误的情况下抛出异常Exception3,则该方法的调用者也要处理此异常。

  • 相关阅读:
    使用闭包的注意点
    JS中的回收机制
    jQuery选择器之样式
    PNRPC 2017-2018 Gym101615I
    Verilog碎碎念
    Codeforces 420D. Cup Trick
    AGC017C. Snuke and Spells
    XVII Open Cup named after E.V. Pankratiev. GP of Tatarstan B. White Triangle
    SPOJ TETRIS2D
    AGC017B. Moderate Differences
  • 原文地址:https://www.cnblogs.com/zhangzongle/p/5425843.html
Copyright © 2020-2023  润新知