package Exception;
/*
* 自定义异常
*
* 我们在实际开发中,会出现一些特有的问题,而这些问题,在java中并没有被封闭好,所以程序员需要自定义一些异常类
*/
public class customException {
public static void main(String[] args) {
try {
div(4, -3);
} catch (FuShuException fs) {
// fs.printStackTrace(); // 将异常的详情打印在控制台上
System.out.println("对不起,除数不能为负数!!!"); // 在控制台上打印这句知
System.out.println(fs.getMessage()); //调用异常类中的getMessage方法
}catch(ArithmeticException ar){
// ar.printStackTrace(); //将异常详情打印在控制台上
System.out.println("对不起,除数不能为零!!!");
}
}
//因为该函数可能出现异常,所以需要使用throws关键字抛出
public static int div(int a, int b) throws FuShuException, ArithmeticException{
//判断,如果被除数为负数的情况下,就创建一个FuShuException异常,并且在方法上面抛出,否则就正常执行
if (b < 0) {
throw new FuShuException("出现了除数是负数的情况"); // 手动通过throw关键字抛出一个自定义异常对象
} else {
return a / b;
}
}
}
// 在本实例中,除数不能为零,并且除数不能小于0(不能为负数)
class FuShuException extends Exception { // 定义一个类,继承Exception类,该类就是异常类了
//因为在父类中已经敢message方法,所以子类在构造时,只需将异常信息传递给父类,只需要通过super语句即可
public FuShuException(String message) {
//访问Throwable类中的getMessage方法
super(message);
}
}