package com.test;
/*
* 自定义异常:自定义的异常类.由于Exception里面有异常的基本功能,一般我们都写Exception的子类
*
* 为什么要有自定义异常?
* 答:系统没有定义的异常需要我们自己定义,我们解决的是系统异常没有处理的问题
*
* 比如:除数为负数异常, 订单异常, 用户信息异常
*
* 异常的分类:
* 编译异常:在编译阶段抛出,处理异常----出运行时异常外的所有异常
* 运行异常:在运行阶段抛出,处理异常----RuntimeException及它的子类
*
* 对于编译异常:异常的处理,异常的抛出等系统都不管,都需要我们自己处理.
*
* 异常处理的方式:
* 1.异常的声明:异常声明后调用者去处理,调用者不处理,继续声明直到交给JVM
* 2.trycatch:
*/
//让谁去处理异常比较合适?
//谁调用可能出现异常的方法,谁负责处理异常
//自定义除数为负数异常类
class FuShuException extends Exception {
public FuShuException() {//无参
}
public FuShuException(String message) {
super(message);//这行必须写
}
}
public class Demo7 {
public static void main(String[] args)throws FuShuException
{
Math4 math4=new Math4();
//一旦方法声明了异常,在调用方法的位置我们就要进行处理1.trycatch 2.继续 声明
math4.div(3, -2);
// try{
// math4.div(3, 2);
// }catch(Exception e){
// e.printStackTrace();
// }
}
}
class Math4{
public int div(int a,int b)throws FuShuException//声明异常,告诉别人我有肯发生异常
{
/*
* 想要的得到除数为负数的异常
* throw是抛出的意思
* throws是异常声明的关键字
*/
if(b<0){
throw new FuShuException ("除数为负数了");//手动抛出除数为负数的异常
}
return a/b;
}
}