throw throws区别

 

1.throws是在方法上对一个方法进行声明,而不进行处理,向上传,谁调用谁处理;

格式: 权限修饰符 返回值类型 方法名(参数列表) throws Exception1,Exception2...{}

目的是声明这些异常,告诉方法的调用者它可能会抛出这些异常,是否需要捕获处理这些异常。

2.throw是实际抛出某个异常对象e

          try {
                String s="";
                s.substring(0,2);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                throw e;
            }

3.throws:一旦发生bug,程序就会立即转入异常处理阶段,后面的语句就不再执行了,而且所在的方法不再返回有意义的值

4.如果a函数里调用b函数,b函数有throws声明,即b函数抛出异常给它的上一级,a函数必须使用try catch捕获,否则必须把a也声明为throws继续向上抛出,直到这个异常被捕获。

5.Exception分为CheckedException跟RuntimeException,运行时异常会被JVM自动一层一层往上抛,直到某一层遇到处理为止,如果都没有处理那么最终出现两种情况,如果是单线程会由

main方法抛出并退出程序。如果是多线程,主线程抛出异常整个程序终止,非主线程抛出则线程终止。

6.不捕获也不抛出的异常,系统会自动抛出,throw则是主动抛出

 

posted on 2020-02-11 14:14  刀锋93  阅读(183)  评论(0编辑  收藏  举报

导航