代码实现
自定义异常类型主要实现代码
public class Exception_demo extends Exception{//自定义异常,需要把自定义异常类继承于Exception异常类,自定义异常类属于异常类的子类public Exception_demo(){//构造方法也叫做构造器,构造方法的名字和类名称一致super();//没有指定参数的话 super()关键字就调用这个无参构造器}public Exception_demo(String info){super(info);//如果在创建自定义异常对象的时候,给予参数,就调用有参构造器}
}
自定义异常类测试代码
/*** 标题:Java中的自定义异常* 作者:Nstar* 时间:2020年3月23日*/
//自定义异常类测试
public class Test25 {public static void main(String[] args) { //入口方法try {System.out.println(exception_test(8,0));//两个实参随便给,如果b=0就方法就抛出自定义类型的异常//如果b不等于0就两数相除,打印出结果//在此进行直接调用,由于受static关键字修饰,所以不用创建类的对象,直接调用//被检查是否存在异常的代码}catch (Exception_demo e){//catch用来捕获exception_test方法抛出的异常e.printStackTrace(System.out); //捕获异常//e.printStackTrace(System.out)打印异常信息//方法括号里写 System.out,这是Java8死要求,不能在方法括号内采用字符串拼接}}public static int exception_test(int a,int b)throws Exception_demo{//public static int exception_test,定义静态的公共方法,返回值为int类型//throws Exception_demo 表明此方法可能抛出一个或多个异常if (b==0){throw new Exception_demo("自定义异常,被除数不能为零");//如果条件满足就抛出一个自定义类型的异常//把异常抛给调用者}else {//不满足就执行两数相除,并且返回int类型的值int num = a / b;return num;}}
}
执行结果
触发异常
(非自定义异常)
(自定义异常)
不触发异常