throw与throws、层层抛出异常

一:

throw 关键字throw用于抛出异常 抛除异常后处理 使用try-catch捕获异常 使用throws声明异常

语法 throw new 异常类构造方法; throw new Exception();

static int avg(int n1,int n2)throws CustomException{

if (n1<0||n2<0) { //判断方法参数是否满足条件 throw new CustomException("不能使用负数");//错误信息

} if (n1>100||n2>100) {

throw new CustomException("数值太大了");

} return (n1+n2)/2; // 将参数的平均值返回 }

二:

throws 用于方法上,指出方法引发的异常。

可以声明多种异常类型,用逗号分开即可。

示例 public void test throws 异常1,异常2,异常3{ }

任何方法都可以使用throws 子类覆盖父类,子类不能声明抛出父类范围更大的异常方法

三:

总结:

throw用于方法体中,用来抛出一个实际的异常对象。

使用throw后,要么使用try catch捕获异常,要么使用throws声明异常 throws用于方法声明处,用来声明该方法可能发生的异常类型,可以是多个异常类型,用来强制调用该方法时处理这些异常

抽象方法也可以使用throws,所以说并不是有throw才有throws 如果使用throw关键字抛异常,一定不要使用Exception,不能很好标记异常类型 如果throw要抛出与业务逻辑有关的异常,需要使用自定义异常类

原文地址:https://www.cnblogs.com/maqiang123/p/7157310.html