我们以两个数相除为例子,假设事先规定不允许除数为负数,若出现除数为负数的情况则抛出异常,话不多说开干!
首先,我们定义一个名为DivideByMinusException的类使其继承Exception类
public class DivideByMinusException extends Exception{
public DivideByMinusException(){
super();//调用父类的空参构造方法
}
public DivideByMinusException(String message){
super(message);//调用父类的有参构造方法
}
}
然后让可能出现异常的方法抛出该自定义类型的异常
public static void main(String[] args) {
try {
int divide = divide(4, -2);
System.out.println(divide);
} catch (DivideByMinusException e) {
e.printStackTrace();
}
}
public static int divide(int a,int b) throws DivideByMinusException{ //使用throws关键字抛出异常
if (b<0){
//使用throw关键字声明异常
throw new DivideByMinusException("不能除负数");
}
int result = a / b;
return result;
}
运行结果如下所示
com.kk.java.Exception.DivideByMinusException: 不能除负数
at com.kk.java.Exception.Test.divide(Test.java:23)
at com.kk.java.Exception.Test.main(Test.java:13)
Process finished with exit code 0