Java基础——异常(2)

throws 和 throw 有什么区别?

1、位置不同:throws用在函数上,后面跟的是异常类,可以跟很多个。

                   throw用在函数内,后面跟的是异常对象。

2、功能不同:throws用来声明异常,让调用者知道功能有可能出现问题,并由调用者可以给出预先的处理方式。

                   throw抛出具体问题对象。执行到throw功能已经结束了,跳转到调用者(谁调用跳哪去),并将具体的问题对象抛给了调用者。

异常体系最大的特点就是体系中的类以及类产生的对象,都具备可抛性。可抛性的意思就是可以被throws和throw所操作的。

异常的原则

1、功能内部有异常抛出,功能上一定要throws声明。

     内部抛什么异常类型,功能上就声明什么。声明的目的就是为了让调用者处理(抛或者try catch),如果调用者不处理,编译失败。

2、特殊情况:

当函数内通过throw抛出RuntimeException及其子类异常对象时,函数可以不用throws声明,。不声明的目的就是不让调用者处理,让调用者程序停止,要对代码进行修改。

Exception分为两种:

1、编译时会被检测的异常。

2、运行时异常(编译时不检测)。

自定义异常:在自定义的程序中,如果有了问题,也可以像java中的异常一样,对问题进行描述。

举例:定义一个功能可以实现除法运算,但是除数不可以为负数。

原文地址:https://www.cnblogs.com/lenjava/p/3773697.html