美文网首页
java关键字-- throw 和 throws 的区别

java关键字-- throw 和 throws 的区别

作者: 何几时 | 来源:发表于2020-11-19 21:44 被阅读0次

使用场景:throwthrows 关键字都是用于抛出异常

throw

作用:抛出java已有的错误类
位置:在方法内

实例代码

package exception;

public class Test02 {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        // Ctrl+Alt+t 代码块包裹
        try {
            if (b==a) {
                throw new ArithmeticException();
            }

            System.out.println(a/b);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        }
    }

    public void test(int a, int b) {
        // 主动抛出异常一般在方法里用 throw
        if (b==a) {
            throw new ArithmeticException();
        }
    }
}

throws

作用:把 throw 的抛出对象从java已有异常类改成“自定义”异常类
位置:函数头尾端 public void test() throws MyException {}

实例程序:
1.自定义异常类

package exception;

public class MyException extends Exception{
    //传递数字>10
    private final int detail;

    public MyException(int a){
        this.detail = a;
    }

    //toString

    @Override
    public String toString() {
        return "MyException{" +
                "detail=" + detail +
                '}';
    }
}

2.实现类

package exception;

public class MyExceptionImp {
    private int num;

    public MyExceptionImp(int num) {
        this.num = num;
    }

    // 如果num超过10,则要改变num的值,这里用取余运算
    public void changeVal(){
        this.num = this.num%10;
    }

    public void printVal(){
        System.out.println("changed num is: " + num);;
    }

    // 可能存在异常的方法
    public void test() throws MyException {

        System.out.println("传递的参数为"+num);

        if (this.num>10) {
            throw new MyException(num);  // 抛出异常
        }

        System.out.println("OK");
    }

    public static void main(String[] args) {
        MyExceptionImp myExceptionImp = new MyExceptionImp(11);
//        System.out.println(Integer.MAX_VALUE);
//        System.out.println(Character.isDigit(3));


        while (true) {
            try {
                myExceptionImp.test();
                break;
            } catch (MyException e) {
    //            e.printStackTrace();  // 这个方法有什么用
                System.out.println("MyException => "+e);  // 这个e走的就是 toString() 方法
                // 增加一些拯救的代码
                System.out.println("==========");
                myExceptionImp.changeVal();
                myExceptionImp.printVal();
            }
        }
    }

}

相关文章

  • Java基础系列-throw、throws关键字

    原创文章,转载请标注出处:《Java基础系列-throw、throws关键字》 一、概述 throw和throws...

  • java关键字-- throw 和 throws 的区别

    使用场景:throw 和 throws 关键字都是用于抛出异常 throw 作用:抛出java已有的错误类位置:...

  • Java 异常部分(重要)

    1.throw 和 throws 的区别? 答: throw则是指抛出的一个具体异常类型 throws是用来声...

  • 每日流程图

    面试题 1.throw 和 throws 的区别? throw:是用在语句抛出异常throw特点:1) throw...

  • Java中throw和throws区别

    throw:一般出现在方法体内,并且在使用的时候是以抛出异常对象为结束,后面的代码不会再执行,比如: throws...

  • Java 面试常问的关键字总结

    关键字: final finalize finally throws和throw static关键字的作用 abs...

  • 异常的调用终止

    0. throw 和 throws 的区别? throw:是真实抛出一个异常。 throws:是声明可能会抛出一个...

  • 0807java异常总结

    一、Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws 1...

  • Java面试题(异常)

    74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws...

  • Java基础-异常(6)

    74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws...

网友评论

      本文标题:java关键字-- throw 和 throws 的区别

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