throws 和
throw 有什么区别?
1、位置不同:throws用在函数上,后面跟的是异常类,可以跟很多个。
throw用在函数内,后面跟的是异常对象。
2、功能不同:throws用来声明异常,让调用者知道功能有可能出现问题,并由调用者可以给出预先的处理方式。
throw抛出具体问题对象。执行到throw功能已经结束了,跳转到调用者(谁调用跳哪去),并将具体的问题对象抛给了调用者。
异常体系最大的特点就是体系中的类以及类产生的对象,都具备可抛性。可抛性的意思就是可以被throws和throw所操作的。
异常的原则:
1、功能内部有异常抛出,功能上一定要throws声明。
内部抛什么异常类型,功能上就声明什么。声明的目的就是为了让调用者处理(抛或者try
catch),如果调用者不处理,编译失败。
2、特殊情况:
当函数内通过throw抛出RuntimeException及其子类异常对象时,函数可以不用throws声明,。不声明的目的就是不让调用者处理,让调用者程序停止,要对代码进行修改。
Exception分为两种:
1、编译时会被检测的异常。
2、运行时异常(编译时不检测)。
自定义异常:在自定义的程序中,如果有了问题,也可以像java中的异常一样,对问题进行描述。
举例:定义一个功能可以实现除法运算,但是除数不可以为负数。
时间: 2024-12-15 07:13:47