异常处理机制之throw与throws的区别是什么?(新手必看)

发布时间 2023-11-13 17:03:58作者: 蹲在街边吃辣条

?1、什么是声明异常(throws)?

throws被称为声明异常,其含义是将异常给显示出来然后抛给使用方法的人。throws进行声明,让调用者去解决异常。throws运用于方法声明之上,其作用是提醒调用者处理异常(抛出异常)。

1.1、声明格式

修饰符 返回值类型 方法名() throws 异常类名 {}

1.2、代码演示

public class Test3 {
    private int age;
    public void setAge(int age) throws Exception{ //声明异常
        if(0<age||age>150){
            System.out.printin("输入年龄有误!");
        }
        this.age=age;
    }
public class Test4(){
	public static void main(String[] args) {
	    Test3 t=new Test3();
	    //调用方法,提醒使用者,要么使用try-catch解决异常,
	    //要么继续在mian方法中声明异常抛出异常给调用者
	    try {
	        t.setAge(160);
	    }catch (Exception ex){
	        System.out.println(ex.getMessage());
	    }
	}
}

注意事项:throws用于进行异常类的声明,若该方法可能有多种异常情况产生,那么在throws后面可以写多个异常类,用逗号隔开。

?2、什么是throw?

我们在编写程序时,必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接收参数。那么,这时需要使用抛出异常的方式来告诉调用者。在java中,提供了一个throw关键字,它用来抛出一个指定的异常对象。

2.1、声明格式

修饰符 返回值类型 方法名(参数列表)throws 异常的类型 {
    if (判断条件) {
        throw new 异常对象("异常的原因");
    }
}

2.2、代码演示

throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。

public class Test5 {
    private int age;
    public void setAge(int age) throws Exception{
        if(0>age||age>150){
        	//抛出运行时异常对象,并填写异常信息
            throw new Exception("输入年龄有误!");
        }
        this.age=age;
    }
}

?3、throw和throws的区别?

1、throw代表动作,表示抛出一个异常的动作; throws代表一种状态,代表方法可能有异常抛出。

2、throw用在方法实现中,而throws用在方法声明中。

3、throw只能用于抛出一种异常,而throws可以抛出多个异常。