2020/11/22 Java中throw和throws的使用
Keep back up。
说到异常,我们当然会想到try catch finally。当然如果用这个的话,被try块包围的代码说明这段代码可能会发生异常,一旦发生异常,异常便会被catch捕获到,然后需要在catch块中进行异常处理。当然这只是一种处理异常的方式,那么在java中还有另一种处理方式就是抛出异常,让调用者进行处理,自己就不再负责了,就学习到了throw 和throws。那么两者有什么区别呢?
-
使用的位置不同:throw是写在方法体里面。throws则是用在方法头上面。
-
作用不同:throw就是直接抛出一个异常,而throws则是说我这个方法可能会抛出一个异常
语法:throw (异常对象);
throw e;
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
1)throws 语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。
2)throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。
3)throws 表示出现异常的一种可能性,并不一定会发生这种异常。
语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
public void doA(int a) throws Exception1,Exception3{......}
共同点
两者在抛出异常时,抛出异常的方法并不负责处理,顾名思义,只管抛出,由调用者负责处理。
区别
(1)throws用于方法头,表示的只是异常的申明,而throw用于方法内部,抛出的是异常对象
。
(2)throws可以一次性抛出多个异常,而throw只能一个
(3)throws抛出异常时,它的上级(调用者)也要申明抛出异常或者捕获,不然编译报错。而throw的话,可以不申明或不捕获(这是非常不负责任的方式)但编译器不会报错