1,throw和throws的区别
a)位置不同。throws用在函数上,后面跟的是异常类,可以跟多个;throw用在函数内,后面跟的是异常对象。
b)功能不同。throws用来声明异常,让调用者知道该功能有可能出现的问题,并由调用者可以给出预先的处理方式;throw抛出具体的问题对象,执行到throw功能就已经结束了,并跳转到调用者。将具体的问题对象抛给调用者。也就是throw语句独立存在时,下面不要定义其他语句,因为执行不到。
2,异常体系最大的特点就是体系中的类以及类产生的对象,都具备可抛性,可抛性的意思就是可以被throws和throw所操作。
3,异常的原则
(1)功能内部有异常throw抛出,功能是一定要throws声明。内容抛什么,功能上就抛什么。
(2)特殊状况:当函数内通过throw抛出了RuntimeException及其子类的异常对象时,函数上可以不用throws声明。不声明的目的就是不让调用者处理,让调用者的程序停止,要对代码进行修改。
4,Exception分两种:
a)编译时会被检测的异常。
b)运行时异常(编译时不检测)RuntimeException