前言
本章学习java异常中的throw和throws的区别以及语法
一、概述
1.throw是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常
2.throws是声明一个异常,写在方法函数头
3.当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理
4.throws出现在方法函数头;而throw出现在函数体.throws表示出现异常的一种可能性,并不一定会发生这些异常; throw则是抛出了异常,执行throw则一定抛出了某种异常对象。两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
5.如果try块中抛出了一个在catch子句中说明的异常类,throw后面的语句无法执行,如果写了语句,是无法通过编译的。
6.无论是否抛出异常finally语句块最终都会执行
二、语法
throws的基本语法
public void setAge(int _age) throws Exception{
//代码块
}
throw的基本语法
public void setAge(int _age){
if(_age>150 || _age<0){
System.out.println("输入的年龄异常");
throw new Exception();
}
}
三、总结
Throws是用来声明一个方法可能抛出的所有异常信息,Throws是将异常声明倒是不处理,而是将异常往上传,谁调用就交给谁处理。
Throws是指抛出一个具体的异常类型。
任何方法都可以使用throws关键字声明异常类型,包括抽象方法。
子类重写父类中的方法,子类方法不能抛出比父类更大的异常。
使用了throws的方法,调用时必须处理声明的异常,要么try-catch,要么继续使用throws声明。
抽象方法也可以使用throws。
Throw用法
throw关键字用于显式抛出异常,抛出的时候是抛出一个异常类的实例化对象。
在异常处理中,try语句要捕获的是一个异常对象,那么异常对象也可以自己抛出。